The deprecation tools for Rails 2.0 are grand, but they really don’t tell you everything you need to know. The things that have bitten me so far are:
- The built-in pagination has been removed from the core framework. Unlike tools like acts_as_list and acts_as_tree, however, there’s no obvious plugin that makes the old code work. This is because the old pagination code was really awful: it performed poorly and hid your content from search engines. Fortunately, Sara was able to convert my
paginatecalls to use the
will_paginateplugin pretty easily.
- Rails Engines, or at least the restful_comments plugin built on top of them, don’t seem to work at all. So I’ve had to disable the comments and proofreading request system I spent November through January building.
- Rails 2.0 adds some spiffy automated code to prevent cross-site-scripting security holes. For some reason this breaks my cross-controller AJAX calls, so I’ve had to add
protect_from_forgery :except => [my old actions]
to those controllers after getting InvalidAuthenticityToken exceptions.
- The default session has been changed from a filesystem-based storage engine to one that shoves session data into the browser cookie. So if you’re persisting large-ish objects across requests in the session, this will fail. Sadly, basic tests may pass, while serious work will break: I found my bulk page transformation
code to work fine for 20 pages, but break for 180. The solution for this is to add
config.action_controller.session_store = :p_store
in your environment.rb file.