Ruby on rails Rails设计和用户IP地址
目前在轨道4的顶部使用Desive 3.5.2,Desive的trackable处于打开状态 通过一系列微服务,我们在RequestStore中拥有客户机的IP地址。它工作得很好,除了当我们想将IP地址保存给Ruby on rails Rails设计和用户IP地址,ruby-on-rails,ruby,ruby-on-rails-4,devise,Ruby On Rails,Ruby,Ruby On Rails 4,Devise,目前在轨道4的顶部使用Desive 3.5.2,Desive的trackable处于打开状态 通过一系列微服务,我们在RequestStore中拥有客户机的IP地址。它工作得很好,除了当我们想将IP地址保存给用户时。当前\u sign\u in \u IP属性 我试着做: def update_tracked_fields!(*) self.current_sign_in_ip = '10.0.0.1' super end 但这并没有给出所需的行为,因为在登录时,last\u sign
用户时。当前\u sign\u in \u IP
属性
我试着做:
def update_tracked_fields!(*)
self.current_sign_in_ip = '10.0.0.1'
super
end
但这并没有给出所需的行为,因为在登录时,last\u sign\u in_ip
会获得固定的10.0.0.1
地址
覆盖Desive用于存储IP的IP地址的最佳方法是什么
非常感谢您查看designe
更新字段的片段:
您可以看到,request.remote\u ip
重新分配了current\u sign\u in\u ip
。因此,您的代码将无效
使其工作的一种方法是尝试以下代码:
def update_tracked_fields!(request)
update_tracked_fields(request)
self.current_sign_in_ip = '10.0.0.1'
save(validate: false)
end
或者更好:
def update_tracked_fields(request)
super
self.current_sign_in_ip = '10.0.0.1'
end
啊,谢谢-很抱歉问这么简单的问题。我很惊讶trackable没有任何变量或方法可以用另一个变量或方法覆盖IP。
def update_tracked_fields(request)
super
self.current_sign_in_ip = '10.0.0.1'
end