This article is completely out of date. Fortunately, there are much better ways to work with Rails on Windows now, and so this Eclipse-based solution is no longer supported.

Rails on Windows

Setting up a Rails Development Environment on Windows Using Eclipse

Last updated on December 2, 2007 6:41 PM   

I've updated all of the broken links and tested this against the new Eclipse 3.2 and Web Tools 1.5. This is the most stable, most responsive version ever!

This latest updated goes hand in hand with the release of Eclipse for Rails , a pre-packaged version for developers looking to try Eclipse. If you're already using Eclipse for development in other areas such as Flex or Java, then you should follow the steps in this tutorial.

I also added a Downloads section where I'll be placing some templates and helper files to speed up the process.

Please, as always, provide some feedback. I can't answer emails about issues not directly related to the setup of this plugin.

If you feel so inclined, a small donation would be much appreciated to help cover bandwidth costs. Thanks for the donations so far.

This is a quick yet detailed guide on how to set up a very easy-to-use development environment for Ruby On Rails. This guide is for Windows users but there's no reason that it couldn't be adapted for Linux users as well. The guide assumes that you already have a working database installed or available and that you have Ruby installed to c:\ruby .

Lastly, this is not a guide on how to get started with Ruby on Rails! This is simply one method to create a useful IDE for Rails development.


Download and install Ruby and Rails

I am operating under the assumption that you're going to use the One-Click Ruby Installer created by Curt Hibbs. If you don't, then you're going to have to modify these instructions yourself.

  • Download and install the One-Click Ruby Installer for Windows
  • Open a command prompt and type
    • gem install rails --include-dependencies
    • gem install mongrel --include-dependencies
      • With Mongrel, choose the first Win32 option in the list.
    • gem install mysql --include-dependencies

Install Eclipse

Eclipse is going to need the Sun Java JRE in order to run. A lot of developers already have this. However, if you are one of the few that doesn't have this installed already, you need to grab it from here . Install it with all of the defaults and then continue with this guide.

  • Create a folder called rails at the root of your C:| drive. We'll be putting lots of things in there.
  • Download Eclipse 3.3.0 with the Web Tools Plugin 2.5 already installed from this page .
  • Unzip the files to C:\rails\eclipse
    • The archive already contains an /eclipse/ folder
    • You can ignore any errors you might receive when you unzip the files. I recommend using something other than the built-in Windows unzipping utility because it can be very slow. Look at WinRar.
  • Make a shortcut to C:\rails\eclipse\eclipse.exe
  • Start Eclipse and set the workspace to ..\workspace
    • This folder should get created for you. The Workspace is where your Rails projects will be kept, and it's also where all of your settings will reside.
  • When Eclipse starts up for the first time, dismiss the Welcome screen by closing its tab. This displays the Java perspective. You're ready to start customizing your workspace for Ruby on Rails development.

Configure Eclipse for Rails

Install the Ruby Developer Tools package

The Ruby Developer Tools plugin is a great set of tools that turn Eclipse into a nice Ruby IDE. It's actually part of the Aptana project now.

  • Launch Eclipse
  • Choose Help->Software Updates->Find and Install
  • Choose "Search for new features to install" and select Next
  • Select "New Remote Site" ,
  • Select New Remote Site again
    • Use the name " Mylen "
    • Use http://download.eclipse.org/tools/mylyn/update/e3.3/ for the URL
    • Press OK and ensure that Mylen is checked
  • Press Finish to start scanning for updates.
  • Check Ruby Developer Tools on the Search Results page and push Next
  • Select the features Mylen and Ruby Developer Tools and push Next . You should confirm any messages relating to installing unsigned plugins. The plugins will be installed and be available after you restart Eclipse.

Configure the RDT plugin

  • Select Windows > Prefrences > Ruby
  • Select Installed Interpreters
  • Click Add
  • Enter Ruby as the interpreter name (You might want to include the version number if you know it)
  • Enter the path to your ruby.exe file (usually c:\ruby\bin\rubyw.exe )
  • Select OK
  • Configure the rest of your Ruby settings and then select OK to save the settings.

 


Launching External Rails Scripts Within Eclipse

You should know that hese settings are tied to your workspace. If you change workspaces then you will need to reconfigure these options. Hopefully the fine developers of RDT will build these into the plugin at some point so they appear on the context menus.

At this point, you're going to want to open the Ruby perspective. To do this, go to Window -> Open Perspective -> Other and choose Ruby

If you don't want to go through the trouble of creating these external tools, you can download this file and unzip it to the root of your c: drive. The files should  then extact to C:\rails\workspace\ (assuming you've followed along so far). The archive contains a .metadata folder and you can safely overwrite the existing one without any problems. Be sure to set up the favorites once you import these settings!

 

Configure Eclipse to Create Rails Projects

  • Select Run -> External Tools -> External Tools
  • Select "Program" from the configuration tree
  • Select New to create a new program
  • Enter “ Create Rails Application in Project ” as the name
  • Enter C:\ruby\bin\rails.cmd for the Location
  • Enter ${project_loc} for the Working Directory
  • Enter ../ ${project_name} for the Arguments
  • Select the refresh tab and check Refresh Resources Upon Completion
  • Select the Common tab
    • Find the section for Display in Favorites Menu
    • Check the box next to External Tools
  • Select Apply

Configure Eclipse to Launch the web server

  • Select Run -> External Tools -> External Tools
  • Select "Program" from the configuration tree
  • Select New to create a new program
  • Enter “ Start Server on port 3000 ” as the name
  • Enter c:\windows\system32\cmd.exe for the Location
  • For the Working Directory, use
    ${project_loc}
  • Enter /C start cmd.exe /C C:\ruby\bin\mongrel_rails.cmd start for the Arguments
  • Select the refresh tab and check Refresh Resources Upon Completion
  • Select the Common tab
    • Find the section for Display in Favorites Menu
    • Check the box next to External Tools
  • Select Apply

 

Configure Eclipse to Create Rails Models

  • Select Run -> External Tools -> External Tools
  • Select "Program" from the configuration tree
  • Select New to create a new program
  • Enter “ Generate Model ” as the name
  • Enter C:\ruby\bin\ruby.exe for the Location
  • For the Working Directory, use
    ${project_loc}
  • Enter for the arguments
    • script/generate model ${string_prompt:Model name} -f
  • Select the refresh tab and check Refresh Resources Upon Completion
  • Select the Common tab
    • Find the section for Display in Favorites Menu
    • Check the box next to External Tools
  • Select Apply

Configure Eclipse to Create Rails Controllers

As many have noted, you could simply duplicate the previous entry and simply change the arguments

  • Select Run -> External Tools -> External Tools
  • Select "Program" from the configuration tree
  • Select New to create a new program
  • Enter “ Generate Controller ” as the name
  • Enter C:\ruby\bin\ruby.exe for the Location
  • For the Working Directory, use
    ${project_loc}
  • Enter for the arguments
    • script/generate controller ${string_prompt:Controller name} -f
  • Select the refresh tab and check Refresh Resources Upon Completion
  • Select the Common tab
    • Find the section for Display in Favorites Menu
    • Check the box next to External Tools
  • Select Apply
  • (You could just copy the "generate model" example above and change the argument).

Configure Eclipse to Generate Scaffold for Controllers and Views

As many have noted, you could simply duplicate the previous entry and simply change the arguments

  • Select Run -> External Tools -> External Tools
  • Select "Program" from the configuration tree
  • Select New to create a new program
  • Enter “ Generate Scaffold ” as the name
  • Enter C:\ruby\bin\ruby.exe for the Location
  • For the Working Directory, use
    ${project_loc}
  • Enter for the arguments

    script/generate scaffold ${string_prompt:Model name} ${string_prompt:Controller name} ${string_prompt:Actions separated with spaces} -f

  • Select the refresh tab and check Refresh Resources Upon Completion
  • Select the Common tab
    • Find the section for Display in Favorites Menu
    • Check the box next to External Tools
  • Select Apply

Setting Up the Favorites

Sometimes, all of these external commands won't show up under the External Commands icon. We can fix that by making them "Favorites".

  • Select Run > External Tools > Organize Favorites
  • Add each external tool that you want to appear on your menu of External Tools
    • Select Add...
    • Select the tools you wish to add to your menu and press OK
    • Use the Up and Down buttons to change the order of the items in the menu
  • Select OK to save the items

Working with Rails Projects in Eclipse

Create a new Rails Project

  • Select File > New > Other : Ruby > Ruby Project
  • Enter a name for your project.
    • This name will be the name you'll use for your Rails project name when you generate the Rails application files
  • Make sure to use the Eclipse Workspace for the project contents!
  • Select the project in the Ruby Resources view
  • Go to Run -> External Tools and choose Create Rails Project. A few seconds later, your Eclipse Console should show the results of the file creation and your file project tree should be populated with your ruby files.
  • At this point, you'll want to edit your config/database.yml file with your database properties.

Show All Files

Under Ruby Resources , select the down arrow icon and deselect Show Ruby Files Only so you can see all the files in your project and not just the .rb files ( If you don't see Ruby Resources , it's most likely because you didn't change to the Ruby perspective. (Eclipse defaults to the Java perspective!)


Install the DBEdit Eclipse plugin

The DBEdit plugin for Eclipse will allow you to view and edit your database tables from Eclipse as well as run various SQL statements against your database.

Connect to a Database

Connecting to a database is pretty straight-forward. I'll use MySQL for an example. In this article, I assume you're using MySQL 4.1 and that you have installed the appropriate driver.

  • Right-click anywhere in the whitespace of the Tables pallette and select Connection -> Configure from the popup menu
  • Select New
  • Enter a name for the connection in the Name field
  • Select the Classpath tab and press Add to Archive. Navigate to your drivers folder and select the appropriate driver jar file.
    • For MySQL, choose mysql-connector-java-3.1.12-bin.jar
  • Select the Commom tab
  • Select com.mysql.jdbc.Driver for the Driver
  • Enter jdbc:mysql://host/dbname for your database
  • Enter your database username
    • For MySql, remove the entry in the Schema field!
  • Enter your passwod and select Save Password
  • Press Connect to save and connect to the database.
  • You can go to Window -> Show View -> Other ->DBEdit ->Instant SQL to bring up a SQL editor panel. Here you can execute statements against your database!

Configure Eclipse to handle your Rails views

Eclipse can handle your rhtml files with syntax highlighting! All you have to do is associate the .rhtml extention with the JSP editor. Once you do that, you can add templates for all of the ActionView helper functions to make development even easier.

  • Select Window -> Preferences
  • Expand the General section
  • Select the Content Types option
  • Expand Text
  • Select JSP
  • Select Add
  • Enter *.rhtml and press OK
  • Select Add
  • Enter *.rxml and press OK
  • Press OK to save the changes

Add Code Hints for the Views

Now, let's add the Rails Link_to tag to the templates library

  • Selct Window -> Preferences
  • Expand the Web and XM L section
  • Expand the JSP Files section
  • Select JSP Templates
  • Select New
  • Enter link_to for the name
    • The context should be ALL JSP
    • Automatically Inser t should be checked
  • Enter the following for the pattern :
    <%= link_to "${url}", :controller=>"${controller}", :action=>"${action}", :id=>"${id}" %>

Create a new .rhtml file and press CTRL+Spacebar

Your Link_to tag should be in that list. When you type the < character, your list of options should appear. Type link to filter the list of results.

When the template is first inserted, the cursor is placed at the url variable, if you hit tab, it will cycle to the next variable in the list.

You can repeat these steps with other helper tags to speed up development. To get you started, I've provided this starter template . Import this into the JSP Templates section via the Import button.

 

Debugging

Ruby on Rails has some interesting techniques to debug projects. One technique is the Breakpointer script. The Breakpointer connects an IRB session to your running web application.

Setting up Breakpointer

  • Select Run -> External Tools -> External Tools
  • Select New to create a new program
  • Enter “ Start Breakpointer ” as the name
  • Enter c:\windows\system32\cmd.exe for the Location
  • For the Working Directory, use
    ${project_loc}
  • Enter /C start cmd.exe /C ruby script/breakpointer for the Arguments
  • Select the refresh tab and check Refresh Resources Upon Completion
  • Select the Common tab
    • Find the section for Display in Favorites Menu
    • Check the box next to External Tools
  • Select Apply

Using Breakpointer

  • In your project, place the following line of code in any method where you want to stop code execution:
  • breakpoint
  • Start up WEBrick:
    • Go to Run -> External Tools ->Start WEBrick
  • Start up Breakpointer
    • Go to Run -> External Tools ->Start Breakpointer
  • Open a browser and navigate to your project (should be at port 3000)
  • Once you hit your breakpoint, return to Eclipse and you should see an IRB console that you can use to inspect your local variables, objects, request data and session data.
  • To stop processing the breakpoint and allow the application to continue, type exit in the console. Breakpointer will begin waiting for a new breakpoint.

Installing SubClipse

If you use Subversion (and you should if you're serious about Rails development) then you can install the SubClipse SubVersion client plugin.

Visit http://subclipse.tigris.org/install.html and follow their directions, or simply follow the same process as RDT and use their update site at http://subclipse.tigris.org/update

  • Choose Help->Software Updates->Find and Install
  • Choose "Search for new features to install" and select Next
  • Select "New Remote Site " ,
  • Check SubClipse and push Next
  • Select the feature RDT and push Next . You should confirm any messages relating to installing unsigned plugins. RDT will be installed and be available after restart.

 

Troubleshooting

  • I used Cygwin and all the paths in your tutoral are wrong. You should change them or make a note about this.
    • You're on your own. This guide uses a specific method. It can easily be adapted for other uses, such as Cygwin or even Linux. However, please understand that I can't support all of those configurations. Compared to developing useful web applications, configuring these plugins should be pretty easy.
  • When I try to run one of the external programs, I get an error stating something about "not valid in prolog"
    • You probably set up all of your external apps as Ant Buids instead of programs .

  • When I run one of the external programs, the message says "variable references empty selection"
    • It usually means that the project isn't selected. Just click on the project name before you run one of the programs.

  • I've set up SubClipse but whenever I try to open one of the SubClipse views, it says my workspace path is invalid and needs to be changed. The suggested path for the change is the same path I'm currently using!
    • SubClipse is picky. It wants the drive letter to be capitalized. Change your workspace path from c:\rails\workspace to C:\rails\workspace and restart Eclipse

Downloads

  • Sun Java SDK
  • One Click Ruby Installer
  • Eclipse with Web Tools
  • externals.zip
    External Programs launchers for
    • Create Rails Structure in Project
    • Generate Model
    • Generate Controller
    • Generate Scaffold for Model and Controller
    • Generate Migration
    • Install Plugin via SVN
    • Rake
    • Rake - Migrate
    • Rake - Migrate to Version
    • Rake - Run Functional Tests
    • Rake - Run Unit Tests
    • Start Breakpointer
    • Start Webrick Server
    • Open Explorer in Project Folder
    • Command Prompt
    • Start Console
  • rails-model-controller.xm l
    Contains code templates for various Ruby on Rails code methods.  Import this into Ruby Templates. (Remove existing Ruby templates or you may get duplicates.)
  • rails-rhtml.xml
    Contains code templates for various Rails helpers used in views. Import into JSP Templates

That about does it. I'll keep looking for other things to add to this procedure since this is the method I am now using for my development environment. If anyone has any feedback that I should add, please send it to ror_dev (at) napcs.com

Thanks to Tom Davies for his comments regarding project locations and his tips about the Rails templates.

Thanks to Chris Williams for the information about WEBrick's output.

Thanks to everyone on the RDT team for working so hard on a great plugin.