Rails 3: Difference between revisions
Jump to navigation
Jump to search
Line 3: | Line 3: | ||
<pre> | <pre> | ||
rails new my_project | rails new my_project | ||
rails -d mysql new my_project # if you don't want the default sqlite3 | |||
</pre> | </pre> | ||
* add gem dependencies to <code>Gemfile</code> at the root level | * add gem dependencies to <code>Gemfile</code> at the root level |
Revision as of 23:39, 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
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"