Hi José,
definitely look into that, if you can find the path thru routing.
For me, I'd say that book_path(:id => 1) is something I can live with.
Just the docs need to be updated.
Karel
On Nov 17, 5:54 pm, José Valim <[EMAIL PROTECTED]> wrote:
> Karel,
>
> The patch I sent allows you to do:
>
> book_path(1)
>
> And:
>
> book_path('cz', 1)
>
> default_url_options DOES work with positional arguments, but the
> problem is that positional arguments expects a fixed number of
> arguments.
>
> I, personally, don't like the syntax: book_path(:id => 1).
>
> I will add the patch to Lighthouse and wait for further comments! =)
>
> José Valim
> --http://josevalim.blogspot.comhttp://www.pagestacker.com
>
> On Nov 17, 1:15 pm, Karel Minarik <[EMAIL PROTECTED]> wrote:
>
> > OK, this was quick. It will work, *not* ideally, but it's tolerable.
>
> > Head over to Lighthouse for
> > info:http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/1251
>
> > This is what you have to
> > do:http://github.com/karmi/test_default_url_options/commit/d55ef3335cb9b...
>
> > --karmi
>
> > On Nov 17, 4:02 pm, Karel Minarik <[EMAIL PROTECTED]> wrote:
>
> > > Thanks for the patch, José!
>
> > > NZkoz recently updated the ticket:
>
> > >http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/1251
>
> > > But I still cannot run it in my test app.
>
> > > Out of desperation I have put it up on
> > > Github:http://github.com/karmi/test_default_url_options/tree/master, so
> > > please do tell me what I may be doing wrong.
>
> > > See Lighthouse ticket for more info.
>
> > > --karmi
>
> > > On Nov 16, 2:06 pm, José Valim <[EMAIL PROTECTED]> wrote:
>
> > > > Hi guys,
>
> > > > I was playing around with this and I worked out a solution which lets
> > > > url helpers locale wise:
>
> > > > map.user ':locale/user/:id'
>
> > > > Then we can do:
>
> > > > I18n.locale = 'en-US'
> > > > user_url(1) #=>http://host/en-US/user/1
>
> > > > I18n.locale = 'pt-BR'
> > > > user_url(1) #=>http://host/pt-BR/user/1
>
> > > > I18n.locale = 'pt-BR'
> > > > user_url('en-US', 1) #=>http://host/en-US/user/1
>
> > > > How it works?
>
> > > > If the route has a :locale segment, we add the locale to url hash
> > > > options: { :locale => I18n.locale }
>
> > > > Even more, if the route has a :locale segment and the number of
> > > > arguments are less than it was supposed to (for example, user_url
> > > > expects 2 arguments), we discard the :locale segment assigning
> > > > correctly the :id.
>
> > > > Gist is here:http://gist.github.com/25476
>
> > > > Tell me how it's working out for you! =)
>
> > > > Regards,
> > > > José Valim.
>
> > > > --http://josevalim.blogspot.com/http://www.pagestacker.com/
>
> > > > On Oct 22, 6:18 pm, "Iain Hecker" <[EMAIL PROTECTED]> 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_o...
>
> > > > > 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/12...
>
> > > > > 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&na...
>
> > > > > > 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
-~----------~----~----~----~------~----~------~--~---