Rails still hitting old database IP, even after restarting apache - ruby-on-rails

I have a Rails app on a windows machine that also has a SQLServer that it used to use as it's database.
However I am trying to transition the app to use a new SQL server on a different Windows machine.
The new Machine is reachable (ping)
After changing the database.yml file with the new IP I can go into Rails console and make queries on the new machine.
However, Running the code still queries the local(old) database.
I have restarted apache.
This is driving me nuts. Why is my code still hitting the old configuration? Do I need to restart the machine completely?
Thanks

Just Try printing the TARGET_ENV and the URI that you are targeting in the Ruby code. It will tell you which IP is being hit everytime.

Related

How do you host a Ruby on Rails application on a home server?

As the title suggests, how can I host a Ruby on Rails application on a home server. I want to be able to develop on linux and then deploy on a server running linux. I know there's PaaS out there that help with deployment and host but for a specific job I need to be able to do it on a computer that will act as a server.
Your phrasing 'run a RoR project on a local computer for production' is a little strange.
If you just want to do development on your PC and have somewhere that will host your production app for free and you can push to from your PC (i.e. the way most development works) you want Heroku.
If you literally want to use your computer as the server for a production app you can use something like Ngrok, which creates a tunnel from the web to your localhost. However you would definitely not want to run most applications like this because if you ever shut down or even closed your computer the site would stop working. Additionally I would guess there's security concerns with using your computer as a server for a publicly accessible URL for any extended period, though I don't know that for sure.

Is one rails server per application?

I have two questions about rails server:
Do I have to start the server from within the application folder?
Is the server I started only for that application?
If they are true, this does not quite make sense to me, since why do I need to start multiple servers?
Or is there some kind of master configuration, so that one server can route to different applications? Is Capistrano for this purpose?
I'm going to assume you're talking about the rails server command, for running a local rails server to test your application, and that you're not talking about setting up a rails application on a remote server. Please mention if that is not the case.
Yes, you must execute rails server from within the root folder of your rails application.
Yes, the server you started is only for that application. It's a self-contained thing.
You should not need to start multiple servers. Even if you have multiple applications, you probably don't need to have more than one running at a time. So, you can shut down the rails server in one application (Ctrl-C) and then cd to your new application, and start a new rails server there with rails server.
If you do need to run two local rails applications at once, you can do so by running them on different ports. So, the first one, you can just execute rails server and it will make your site available at localhost:3000 (because port 3000 is the default port). The next one, you can specify a port other than 3000 - eg. rails server -p 3001 to get a rails app at localhost:3001.
Capistrano is for deploying your applications to a remote server, not for running them locally on your own computer. So, it is not relevant here. What you may be interested in is http://pow.cx/
Again, I've assumed you're talking about running your rails app locally on your own computer. If you're referring to deploying it to the internet on a server, then you can ignore this answer.

Testing a ROR app without an Internet Connection

Normally if I want to test an ROR app in Ubuntu, I run the rails s command and webrick initializes the server which I access by typing "localhost:3000" or whatever in the URL bar of my browser. However, I can't do this without an internet connection. If I'm in the air or just somewhere with no wifi, is there a way to still do this?
Thank you.
Rails loads dependencies through the your OS's http libraries. I don't know the exact terminology, but it basically means your app will use any connection required to make your app run
To explain, this works in the same way as if you access http://google.com & http://localhost:3000 - you still access through the browser, but your system doesn't mind if those URL's are local or public
To answer your question, you'll need to keep your db & assets local to your system. The simple way is to install & run a MYSQL server, and use localhost in your database.yml file to connect to it

Running Ruby on Rails app on server

I am using Aptana Studio 3 for development of ROR apps. I used run server command and it showed you can access your app on {http//0.0.0.0:3000/}, but when I try to access this URL, it tells me to check your Internet connection. I tried several other ports also but it is not working. I have created/modified the files necessary and migrated the database successfully too. Appreciate any help in running the app over the browser. I am currently using WeBrick Server.
so, in your title you say "on server". what does that mean? when you are running it on a different machine than your own, you need to use the address of that machine or it's domain name. keep in mind that firewall rules might prevent any connection to that server.
when you are ON the machine, via ssh for example, you can try calling the then "local" rails instance with curl http://localhost:3000/ to verify that it is running.

Rails only responds when accessed from local machine

I'm running a Rails application on a Mac Mini server machine (with Webrick, running ruby 1.9.2 using rvm). It works fine when I run it locally on my MacBook, and it was working before I reinstalled rvm, but now whenever I try to access it from a browser on my local machine, it simply hangs and doesn't respond.
If I do a curl http://0.0.0.0:3000 on my server, though, I get the webpage back fine.
I created a fresh Rails app just to double-check it wasn't a problem with my app, and I get the same problem. I also get the problem with Mongrel, and if I try running a bare Sinatra app with Thin.
It sounds like the same problem documented here: Webrick is very slow to respond. How to speed it up?, but I tried modifying my config.rb file to use :DoNotReverseLookup => true, and it didn't help.
Any ideas?
I don't think the issue is related to Rails or your dispatcher. It looks like the OS firewall is blocking ingoing requests to port 3000. Did you try to allow all ingoing connections from your System Preferences ?

Resources