It is easy to be vulnerable to cross site scripting attacks in earlier versions of Rails, but Rails 3 solves this by automatically escaping unsafe input.
Rails 3 sports a new routing interface. In this episode I show how to translate the old interface into the new one and show off a few new features.
Rails 3 introduces a new query interface for performing finds in Active Record. See how it works along with the changes in named scopes.
Bundler is the way to manage gem dependencies in Rails 3.0. Learn how to install gems and lock them down in this episode.
Get started with Rails 3.0 Beta and install Ruby 1.9.1 using RVM: Ruby Version Manager. Stay tuned to the end for a challenge on giving back to open source.
Change the look and behavior of a Rails app on mobile devices. Also use jQTouch to build a native-looking interface.
Use checkboxes to edit multiple records in one form, where each one has an individual set of form fields.
Add and remove nested model fields dynamically through JavaScript using either Prototype or jQuery.
Handling multiple models in a single form is much easier with the accepts_nested_attributes_for method. See how to use this method to handle nested model fields.
Here I show several of my favorite web applications which I found most helpful as a Ruby developer over the past year.
MongoDB is a document based database engine. Learn how to access it through MongoMapper in this episode.
If you want to create a model without a database backend, you simply need to define a couple methods in the model like I show in this episode.
CanCan is a simple authorization plugin that offers a lot of flexibility. See how to use it in this episode.
Mechanize extends the power of Nokogiri allowing you to interact with multiple pages on the site: click links, submit forms, etc.
Screen scraping is easy with Nokogiri and SelectorGadget.
Learn how to set up a one-to-many or many-to-many association which is entirely embedded into a single column through a string or bitmask.