Rails 3 : Cool New Things

Preview:

DESCRIPTION

Cool new things in Rails 3. Presented at WellRailed at 27th January 2010

Citation preview

   

Rails 3Cool New Things

   

* Caveats

   

Not ready...

● 3.0pre not released yet● http://oscardelben.com/articles/2009/12/06/how­

to­test­rails­3.html

   

On to Cool Stuff...

   

Have It Your Way

   

More modular

● Standard Rails will work out of the box● Swap AR with DataMapper● http://www.slideshare.net/mattetti/rails3­

stepping­off­of­the­golden­path

   

.....

   

ActionController

● Based on Metal● Swap out stuff you don't need for performance● http://www.engineyard.com/blog/2010/rails­and­

merb­merge­plugin­api­part­3­of­6/

   

   

ActiveRecord & Arel

   

Arel

● compose queries using relational algreba (http://github.com/rails/arel)

● Lazy loading in 3.1 (http://m.onkey.org/2010/1/22/active­record­query­interface)

   

Arel

http://m.onkey.org/2010/1/22/active­record­query­interface

   

Responders

● respond_to now baked in● Can make your own responders● http://weblog.rubyonrails.org/2009/8/31/three­

reasons­love­responder

   http://www.engineyard.com/blog/2009/my­five­favorite­things­about­rails­3/

   

New Gem Bundler

   

Bundler

● No more config.gem● Gemfile● Evaluates all dependencies at once● Deploying and freezing native gems !● http://github.com/wycats/bundler

   

Gemfile

   

Config files *

● config/environment.rb shrunk● New file : config/application.rb ● Application name seems to matter now 

(https://rails.lighthouseapp.com/projects/8994/tickets/3556­app_generator­should­disallow­or­fix­invalid­app_const)

   

config/environment.rb

   

config/application.rb

   

config/boot.rb

   

RoutingMore power to the people

   

Routing

● More flexible● Can point to any Rack application● “main#home == MainController.action(:home) 

== a Rack application”● http://yehudakatz.com/2009/12/26/the­rails­3­

router­rack­it­up/

   

Routing

   

Routing

   

ActionMailer

● Looks more like a Controller now● http://gist.github.com/281420

   

ActionMailer

http://gist.github.com/281420

   

Javascript

   

Javascript

● Unobtrusive● Easier to swap out with Jquery● Uses HTML5 data­* attributes

   

Javascript

   

Plugins

   

Plugins

● rspec ­ http://github.com/dchelimsky/rspec­rails/tree/rails3

● cucumber http://blazingcloud.net/2010/01/17/notes­from­rails­3­bugmash

● Others http://wiki.rubyonrails.org/rails/version3/plugins_and_gems

   

By the Way....

   

Get Validations, etc by including ActiveModel::Validations

ActiveModel

   

Rails::Subscriber

● Get hooks for notifications, etc.● E.g. Output ActiveRecord SQL to Growl● http://hasmanyquestions.wordpress.com/2010/0

1/17/let­your­sql­growl­in­rails­3/

   

XSS protection

● eRB now escaped by default● Use raw to not escape● Try out the plugin 

http://github.com/NZKoz/rails_xss

   

Starters

● http://omgbloglol.com/post/344792822/the­path­to­rails­3­introduction

● http://www.engineyard.com/blog/2009/my­five­favorite­things­about­rails­3/

● http://rails3.community­tracker.com/permalinks/5/notes­from­the­field­upgrading­to­rails­3