Hi, I'm sorry, I forgot all about it... Let's recap:
The problem is that Rails assigns non-hash objects to the first variables in the route and only after that the default_url_options get assigned. So if you have user_url(1) for routes like "/:locale/users/:id" then 1 will be assigned to :locale, and after that the default_url_options kick in. They want to set :locale to "en-US", but there is no :locale left, so it appends it ?locale=en-US. Then it raises a routing error because :id hasn't been filled. If you don't have :locale in front, then this method works really nice. You'd get what google uses (foo/bar?hl=en). But I want to add the locale in front! (/en/foo/bar) I have been wandering on lighthouse and found this ticket: http://rails.lighthouseapp.com/projects/8994/tickets/22-default_url_options-is-being-ignored-by-named-route-optimisation I don't know enough about the routing and url generation to solve this, so I made a ticket: http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/1251-default_url_options-cant-be-used-with-named-routes Iain On Wed, Oct 22, 2008 at 18:51, Karel Minarik <[EMAIL PROTECTED]> wrote: > > Hi, > > a while ago Iain mentioned the "default_url_options" method in Rails, > which could be just what we need for preserving locale in URLs (thus > being restafarians! :) > > Have you looked into any further, Iain? Has anybody else? It really > looks like this would be perfect & transparent solution. > > Here are the docs: > > http://www.railsbrain.com/api/rails-2.1.0/doc/index.html?a=M000494&name=default_url_options > > Karel > >> From: "Iain Hecker" <[EMAIL PROTECTED]> >> Date: Oct 3, 3:50 pm >> Subject: Am I doing it right? (translating my first app) >> To: rails-i18n >> >> ... >> >> Rails seems to have an answer to it, called default_url_options[1], >> but it doesn't seem to work. I've overwritten the method like the api >> tells me, but somehow it is ignored into generating the path. It is >> called, because it will break if I raise somthing in it. The options >> passed to it are what you'd expect (containing all the parameters >> you'd pass to url_for) >> >> Here's my method: >> >> def default_url_options(options = {}) >> { :locale => I18n.locale } >> end > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "rails-i18n" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rails-i18n?hl=en -~----------~----~----~----~------~----~------~--~---
