Ruby on rails 4 模型验证器中获取远程ip的设计

Ruby on rails 4 模型验证器中获取远程ip的设计,ruby-on-rails-4,devise,Ruby On Rails 4,Devise,我正在尝试验证用户注册是否符合需要IP和电子邮件的垃圾邮件服务。我将Rails 4.2与Desive一起使用。Deviate具有当前的\u sign\u in\u ip属性,但在注册期间为零 注册时是否有方法将request.remote_ip的值从设计注册/创建控制器操作传递到用户模型 我尝试了以下操作,但未添加密钥: class Users::RegistrationsController < Devise::RegistrationsController def create

我正在尝试验证用户注册是否符合需要IP和电子邮件的垃圾邮件服务。我将Rails 4.2与Desive一起使用。Deviate具有当前的\u sign\u in\u ip属性,但在注册期间为零

注册时是否有方法将request.remote_ip的值从设计注册/创建控制器操作传递到用户模型

我尝试了以下操作,但未添加密钥:

class Users::RegistrationsController < Devise::RegistrationsController

  def create
    sign_up_params[:current_sign_in_ip] = request.remote_ip
    super
  end

end
类用户::注册控制器<设计::注册控制器
def创建
注册参数[:当前注册ip]=请求远程ip
超级的
结束
结束

终于明白了。需要取消注释before_筛选器,并将参数添加到许可列表中

class Users::RegistrationsController < Devise::RegistrationsController

  before_filter :configure_sign_up_params, only: [:create]

  def create
    params[:user][:current_sign_in_ip] = request.remote_ip
    super
  end

  protected

  def configure_sign_up_params
     devise_parameter_sanitizer.for(:sign_up) << :current_sign_in_ip
  end

end
类用户::注册控制器<设计::注册控制器
筛选前:配置注册参数,仅:[:创建]
def创建
参数[:用户][:当前登录\u ip]=请求.远程\u ip
超级的
结束
受保护的
def配置\注册\参数
为(:注册)设计参数消毒剂