Ruby on Rails for a dummy (me)
I know – the above app isn’t much, but oh, the time it took me to get it working!
I’ve been trying to follow a Lynda.com video tutorial on Ruby on Rails – just the part about getting started! – for a couple of weeks now. The first stumbling block is that the tutorial was done on a Mac, and it doesn’t give very detailed advice for Windows users. (I am running Windows Vista, not as a lifestyle choice, but because I am poor. Don’t judge!) Here is what I tried:
- Downloaded InstantRails. (Go ahead – just try to find their download page! I dare you!) Although everything seemed to be working here, commands like “script/generate controller say” didn’t work. Well, if that doesn’t work, it’s a wash.
- Installed Ubuntu as a virtual machine. Followed several tutorials on how to install RoR, but all seemed to leave me with database connection problems.
- Installed Turnkey Rails as a virtual machine. Oh, the joy I felt when I realized that to view my RoR app, I needed to use the browser on my non-virtual machine (i.e., Vista)! Why isn’t that made explicit anywhere? Once you figure that out, the GUI for Turnkey is really great – and the documentation is crap. I could not connect properly to the database with this one either.
- Installed Bitnami as a virtual machine. Ugh, this is one is frustrating. I don’t even want to talk about it. The documentation is worse than for Turnkey.
So, one InstantRails and three virtual machines later, I was about ready to give up. However, I was feeling a bit better informed about how RoR functions because of all my failed interactions with it, so I decided to give InstantRails one more try. For anyone out there who is struggling and Googling vainly, here is what you do:
- You’re starting with a Windows Vista system.
- Download InstantRails. Choose the .zip file closest to the top of the page.
- Extract InstantRails somewhere convenient, such as a folder on the desktop. It’ll be staying there, rather than installing itself somewhere else. Get yourself a beverage because the extraction will take some time.
- Open the extracted folder and double-click “InstantRails.exe.”
- A dialog box will pop up. Just agree to let it do its thing.
- The program will look like this:
- If MySQL doesn’t say “Started” after a few seconds, click “MySQL” and choose “kill.” That should fix it!
- Now, to build your very own “Hello World” app, click the “I” button on the far left.
- Choose “Rails Applications” -> “Manage Rails Applications.”
- There are some prebuilt applications here that you can play with, but let’s face it – that’s not why you’ve installed RoR. Click “Create New Rails App…”
- A command prompt will pop up. Type the command below, where “myapp” is the name of the app you are going to create:
rails myapp
- A list of lines should be spat out, each starting with “create.” Go back to the “Rails Applications” window and click “Refresh” at the bottom. “myapp” should now appear in the list.
- Go back to the command prompt and type the following command to change into the directory of your new app:
cd myapp
- Type the following command to generate a controller called “say.” Note that you need to start the command with “ruby” or it won’t work! The direction of the slash doesn’t seem to matter, however. (Both \ and / worked for me.)
ruby script\generate controller say
- Now you can edit the “say” controller to define an action called “hello.” Inside the InstantRails folder on your desktop, use a text editor to open “rails_apps” -> “myapp” -> “app” -> “controllers” -> “say_controller.rb.”
- Add two lines to make it look like this:
class SayController < ApplicationController def hello
end end
- Save the file and navigate to “rails_apps” -> “myapp” -> “app” -> “views” -> “say.” Make a new file here called “hello.html.erb” that contains the following text:
<html>
<head>
<title>Hello, World!</title>
</head>
<body>
<p>Hello, World!</p>
</body>
</html>
- Back in the “Rails Applications” window, check the box next to your app, and click “Start with Mongrel.”
- Your app is now running, but how to view it? Click “Configure Startup Mode” to find the address to put into your browser. Mine is http://127.0.0.1:3000. Put that address in to get the standard “Welcome Aboard” page. Append to it the name of your controller and view to see your app in action:
http://127.0.0.1:3000/say/hello
- That’s it! You’ve got InstantRails working, and it’s time to actually learn RoR now. At least, that’s my plan!
8 Comments
Hurrah! Very cool. Do you have a first project in mind?
Somewhere down the line, you might find Heroku useful. It's a relatively straightforward way to put a Rails app up online under its own domain, without having to worry about running a server yourself. You have to learn some new tools along the way — "git," for instance — but it might be worth it. Just something to file away.
Ooo, thanks Robin! I will keep that in mind. But since my webhost claims to "support" RoR, I'm hoping it won't be a big issue. On the other hand, *nothing is ever simple*, and it's good to have options!
You might want to drop by http://railsbridge.org and http://railsmentors.org – plenty of helpful people available to get you pointed in the right direction. Though you seem to be over the big first hurdle already, congratulations!
Thank you! Those look like great resources!
Seems to be mighty complicated to me! Was it all worth it?
I’m not sure if it’s worth it yet! But it seems like a useful system to be able to work with. I’ll definitely be posting again after I’ve learned more.
Great info, I’ve been bouncing around trying to find a good tutorial to catch up with Ruby, and so far have not been successfull. Bet I am a bigger dummy than you!
Thanks for sharing.
I am looking forward to trying out the updated version of Lynda.com’s tutorial. It was released a few weeks ago, and it should clear up a lot of the problems that I (and you?) have experienced.