【发布时间】:2011-10-31 14:57:37
【问题描述】:
我的所有表都有一个 ip_address 字段,我想使用模型自动流行。我怎么能在模型中设置它?我猜我必须为此使用 before_save 过滤器?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3
我的所有表都有一个 ip_address 字段,我想使用模型自动流行。我怎么能在模型中设置它?我猜我必须为此使用 before_save 过滤器?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3
没有理由使用过滤器。 ip_address 列与其他列一样。根据您的意图,您必须找到匹配的模型实例并更改其 ip_address 列或创建一个包含 columnm 的新条目。
当你说你在每个表中都有列时,它的样式很糟糕。 ip_address 分配给用户,而不是每个模型。我建议您创建一个名为Login 的新模型,其中包括ip_address、user_id 以及created_at 和updated_at 字段。最后一个是自动生成的。然后您可以在每次用户登录时保存 ip_address。像这样在您的控制器中:
login=Login.new
login.user=current_user
login.ip_address=request.remote_ip
login.save
【讨论】:
Visitor 的模型并在会话中写入visitor_id。因此,您可以在不让他们登录的情况下识别用户,并且可以将Visitmodel(与我谈到的Login 模型具有相同的字段)与Visitor 模型相关联,这样您就可以看到访问者何时使用了哪个IP -地址。