For test purposes I want to change the return value of request.remote_ip. While being on my development machine it returns always 127.0.0.1 as it should but I would like to give myself different fake IPs to test the correct behavior of my app without deploying it to an live server first!
Thank you.
For integration tests, this works with rails 5:
rails 4.0.1 rc. After hour of searching found this simple solution while digging to code :)
If you want this functionality in your whole application, it might be better/easier to override the remote_ip method in your
app/helpers/application_helper.rb
:And the 1.2.3.4 address is available everywhere
You can modify the request object using:
request.remote_ip
now returns 1.2.3.4What I ended up doing now was to put this code in the end of the
config/environments/development.rb
file to make sure it's only executed while in developmentSo this sets remote_ip to 1.2.3.4 when the server starts. Everytime you change the value you have to restart the server!
This answer is only works for rails3 (I found this answer when trying to answer a similar question for rails 3),
So I will post it here in case if someone is trying to do the same thing in Rails3 env
HTH