Вы можете сделать следующее для получения удаленного IP-адреса клиента, это с использованием контроллера.
class TestsController < ApplicationController
def get_ip
ip = request.remote_ip
Test.use_ip(ip)
end
end
Предположим, у вас есть модель. Я предполагаю это как Test
class Test < ActiveRecord::Base
def self.use_ip(ip)
puts ip
end
end
Согласно вашему требованию, которое противоречит соглашению Rails (что не очень хорошая практика)
определить следующее в application_controller.rb
before_filter :pass_request_around
def pass_request_around
Thread.current[:request] = request
end
В модели объект запроса теперь должен быть доступен
def get_ip
request = Thread.current[:request]
ip = request.remote_ip
end