2016-05-14 9 views
1

現在、実稼働中(Heroku)、クライアントのIPアドレスをCookieに格納するために、アプリケーションコントローラで以下のメソッドを使用します。Ruby on Rails内のコントローラ内の異なる環境に異なるオブジェクトを使用するには?

class ApplicationController < ActionController::Base 
    before_action :cache_ip 

    def cache_ip 
    cookies[:client_ip] = request.remote_ip 
    end 
end 

ただし、request.remote_ipメソッドは開発時にはnil(localhost:3000)を返し、それは自分の機能をテストしません。

class ApplicationController < ActionController::Base 
    before_action :cache_ip 

    def cache_ip 
    if ENV == production 
     cookies[:client_ip] = request.remote_ip 
    else 
     cookies[:client_ip] = SOME.IP.ADDRESS 
    end 
end 

を教えてください:

は、私はこのような何かをしたいです。

答えて

1

は、以下のことを試してみてください。

class ApplicationController < ActionController::Base 
    before_action :cache_ip 

    def cache_ip 
    if Rails.env.production? 
     cookies[:client_ip] = request.remote_ip 
    else 
     cookies[:client_ip] = SOME.IP.ADDRESS 
    end 
    end 
end 
+0

はい。これは機能します。ありがとうございます。 –

関連する問題