Working with Rails from the Console

Rails is so thoroughly web-facing that it can be difficult to imagine working with it from the command line, but it does indeed offer script/console. When you run script/console rather than script/server, Rails starts up a special environment using the Interactive Ruby Shell (irb) instead of firing up a web server. This shell has the full context of your application, so you can load data from your databases, play with models, and generally take a look around.

Note

You can, if you want, have script/console and script/server running at the same time in different windows.

The console shell lets you interact with your application from the command line with the full powers of Ruby at your disposal. Most Ruby books include a lot more detail about irb, some even running all of their examples there, but in Rails it’s good mostly for playing with models and testing methods.

To get started, try running script/console --sandbox in one of your applications, say the final students/courses application from Chapter 9. You’ll see something like:

SimonMacBook:students001c simonstl$ script/console --sandbox
Loading development environment in sandbox (Rails 2.1.0)
Any modifications you make will be rolled back on exit
>>

If you actually want to make changes to your database, you can leave off the --sandbox option (which can be abbreviated -s). For the first few visits, it feels safer to know that none of the changes made from the console will last beyond the console ...

Get Learning Rails: Live Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.