Yes, indeed it behaves precisely like you describe, Iain. (I've tried
on a sample app -- one question, where do you define
`default_url_options`? I did in ApplicationController.)

Routes like `books_path` or `new_book_path` work perfect, but not any
route with params.

If this would work, it would be *awesome*, because it's so
transparent... I don't know nothing about routing internals as well,
so we are in the hands of Destiny on this one? :)

Best!,

Karel

Iain Hecker wrote:
> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to