Running patched rails, monkey-patch

Hi,

Does anyone have any tips for running a patched version of rails? I am currently running rails 1.2.2 and would like to keep up to date with any future releases. I also want to run with the following patch:

http://dev.rubyonrails.org/ticket/5748

I am unsure how to manage this. Is this something SVN or rake can handle?

If the patch is not too complex you can also apply it as a monkey- patch. This is quite simple, just create a ruby-file inside lib with a class in there of the same name, and inside the same modules as the rails-class. Then add changed versions of all the functions you want changed.

Require this file at the end of your environment.rb, and you're done.

I myself make use of this method quite extensively, but of course you shouldn't over-do it and of course try to get improvements and fixes that everyone would enjoy into the rails-trunk.

Wybo

Along the same lines, I recently did something similar. This might not be the best solution, however I created a patches.rb file that gets loaded by environment, an example in there:

# Monkey Patches # Fixes a bug in rails 1.2.2 where Arrays are being improperly handled in query parameters # It should only be converted to a '/' joined string if it's a :path element if Gem::GemPathSearcher.new.find('rails').version.to_s == '1.2.2'   class ActionController::Routing::RouteSet     def options_as_params(options)       options_as_params = options[:controller] ? { :action => "index" } : {}       options.each do |k, value|         options_as_params[k] = (value.class == Array && k.to_s != 'path') ? value : value.to_param       end       options_as_params     end   end end

This way I won't override anything if they fix it in the next release, and if it still isn't fixed, I can just update the version check.

Anyways, hope that helps some.   .adam sanderson