Rails current_user ip返回nil,原因不明

时间:2018-04-29 15:03:12

标签: ruby-on-rails segment

在我的应用程序控制器中,我有这段代码

DES_ede3_cbc_encrypt

我要做的是将current_users IP地址添加到分析系统,该系统位于不同的static_controller.rb中,代码如下

 def user_ip
  request.remote_ip
  @remote_ip = current_user.request.env["HTTP_X_FORWARDED_FOR"]
  end

在我的分析调试器中,我得到了这个结果:

def matrimonials

  Analytics.identify(
    user_id: current_user.id,
    traits: { email: "#{ current_user.email }", ip: @remote_ip, friends: 100 },
    context: {ip: @remote_ip }
    )


  Analytics.track(
    user_id: current_user.id,
    user_email: current_user.email,
    event: 'Viewed Matrimonials',
    properties: {
      name: 'Matrimonials page'
    }
  ) if user_signed_in?

end

为什么ip nil?我在应用程序控制器中设置请求,静态控制器从中继承...

1 个答案:

答案 0 :(得分:1)

您可以尝试这样做:将user_ip定义为辅助方法,并在matrimonials方法中使用它。

class ApplicationController < ActionController::Base
  helper_method :user_ip

  def user_ip
    #...
  end
end


def matrimonials
  #...
  context: {ip: user_ip }
end