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