Plz test my patch for resources with path_prefix with a variable

Hi!

The problem:
You may have read the I18n-Guide (
http://guides.rubyonrails.org/i18n.html#setting-the-locale-from-the-url-params).
It says, that the usual way to provide the locale is in the URL, like
example.com/en/books/2. But:

map.resources :books, :path_prefix => ‘/:locale’

[…]

This solution has currently one rather big downside. Due to the
default_url_options implementation, you have to pass the :id option
explicitely, like this: link_to ‘Show’, book_url(:id => book) and not
depend on Rails’ magic in code like link_to ‘Show’, book.

Actually this is not a problem of default_url_options, but of
polymorphic_url, which is utilized by link_to in the example. It
generates
the book_url and passes an array into the generated route. This array
has
only one item, the book id. book_url tries to fill in the id into the
first
parameter of the url, which is the locale (/:locale/books/:id), which
leaves
the :id unsatisfied, raising an exception.

The solution:
With my patch, polymorphic_url will pass an hash instead of an array to
the
generated route. It may look like {:id => 2}. It works also with nested
resources: e.g.: {:author_id => 3, :id => 2}

The patch:
I’ve created a patch for Rails 3 and Rails 2-3-stable and put them in a
ticked on lighthouse:
https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/3394-polymorphic_url-fails-to-generate-routes-with-path_prefix-with-a-variable

I hope, you’ll find this patch useful and it gets accepted into rails
soon.

Regards from Hamburg, Germany

Johannes

Hi friends,

How to increase the response speed rails application. Pls suggest some
steps
to improve the performance.

Thanks
Bava

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs