Rails 3

From Wiki
Revision as of 19:47, 16 February 2011 by Scott (talk | contribs) (Routing)
Jump to navigation Jump to search

Application Setup

  • create project with
rails new my_project
  • add gem dependencies to Gemfile at the root level
  • update config/application.rb to load needed dependencies and update defaults
  • double-check /config/initializers and /config/environments

Files in lib/ are not automatically loaded, so you need to require them.

In config/environments/development.rb, set

config.action_mailer.perform_deliveries = false

No delivery attempt is performed, but you can still see the mail in the log file to check it looks good


Other rails commands

rails console
rails server
rails runner


Routing

Configured in config/routes.rb

match 'products/:id' => 'products#show'

The url http://localhost:3000/products/8 will be mapped to the show action of the products controller with params[:id] set to 8

To create a link to this route (old way):

link_to "Products", :controller => "products", :action => "show", :id => 1

To restrict the HTTP method, use get or post instead of match:

get 'products/:id' => 'products#show'

To redirect:

match "/foo", :to => redirect("/bar")

Logging

Use these in models, views, controllers to send timestamped messages to the log.

logger.debug "debug message"
logger.info "info message"
logger.warn "something bad"
logger.error "something broke"
logger.fatal "application dead"