Upload
y-thong-kuah
View
6.412
Download
0
Tags:
Embed Size (px)
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
totestrails3.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
steppingoffofthegoldenpath
.....
ActionController
● Based on Metal● Swap out stuff you don't need for performance● http://www.engineyard.com/blog/2010/railsand
merbmergepluginapipart3of6/
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/activerecordqueryinterface)
Arel
http://m.onkey.org/2010/1/22/activerecordqueryinterface
Responders
● respond_to now baked in● Can make your own responders● http://weblog.rubyonrails.org/2009/8/31/three
reasonsloveresponder
http://www.engineyard.com/blog/2009/myfivefavoritethingsaboutrails3/
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/3556app_generatorshoulddisalloworfixinvalidapp_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/therails3
routerrackitup/
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/rspecrails/tree/rails3
● cucumber http://blazingcloud.net/2010/01/17/notesfromrails3bugmash
● 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/letyoursqlgrowlinrails3/
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/thepathtorails3introduction
● http://www.engineyard.com/blog/2009/myfivefavoritethingsaboutrails3/
● http://rails3.communitytracker.com/permalinks/5/notesfromthefieldupgradingtorails3