我想做以下事情:
定义一个 before_filter
在 application.rb
提取用户的 IP 地址并将其存储在任何地方,最好是在 session 中。
在我的所有模型中定义两个 before 过滤器作为 before_create 和 before_update ,将当前用户的 IP 添加到要存储的对象。
问题:我无法访问 session[]
两者都不是 env[]
在一个模型中。任何人都可以帮助提供我还不知道的标准解决方案吗?
问候
杰森
最佳答案
尝试这个。在您的用户模型中添加一个类属性访问器
cattr_accessor :current_ip
在您的应用程序 Controller 中添加:
before_filter :set_current_ip
protected
def set_current_ip
User.current_ip = request.env['REMOTE_ADDR']
end
然后在您的模型中,您应该能够调用 User.current_ip
我们做一些类似的事情来让 current_user 对象通过。
关于ruby-on-rails - Rails 为每个创建/更新请求保存 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1431778/