Rails current_user ip возвращает ноль по неизвестной причине - PullRequest
0 голосов
/ 29 апреля 2018

В моем контроллере приложения у меня есть этот код

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

я пытаюсь добавить IP-адрес current_users в систему аналитики, которая находится в другом static_controller.rb со следующим кодом

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

в моем аналитическом отладчике я получаю такой результат:

Analytics.identify(
  user_id: '1',
  traits: {
    email: 'test@test.com',
    friends: 100,
    **ip: nil**
  }
)

почему ip nil? Я установил запрос в контроллере приложения, от которого наследуется статический контроллер от ..

1 Ответ

0 голосов
/ 29 апреля 2018

Вы можете попробовать это: Определить вас user_ip как вспомогательный метод и использовать его в вашем matrimonials методе.

class ApplicationController < ActionController::Base
  helper_method :user_ip

  def user_ip
    #...
  end
end


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