Rails 3: Difference between revisions

From Wiki
Jump to navigation Jump to search
Line 28: Line 28:
<pre>
<pre>
rails console
rails console
rails dbconsole
rails server
rails server
rails runner
rails runner
</pre>
</pre>


== Routing ==
== Routing ==

Revision as of 23:43, 9 June 2011

Application Setup

  • create project with
rails new my_project
rails -d mysql new my_project  # if you don't want the default sqlite3
  • 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
  • edit config/database.yml to connect to your database

Notes

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

Database Setup

  • create database with
rake db:create

Other rails commands

rails console
rails dbconsole
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"