When using named RESTful routes, when should one use the generated ..._path helpers, and when the ..._url helpers? Say I did this in routes.rb: map.resources :users Where should I use users_path, new_user_path, etc., and where should I use users_url, new_user_url...? Thanks! Steve
on 15.03.2007 00:41
on 15.03.2007 01:09
stevemolitor@gmail.com wrote: > When using named RESTful routes, when should one use the > generated ..._path helpers, and when the ..._url helpers? Say I did > this in routes.rb: > > map.resources :users > > Where should I use users_path, new_user_path, etc., and where should I > use users_url, new_user_url...? > > Thanks! > > Steve The users_url helper generates a URL that includes the protocol and host name. The users_path helper generates only the path portion. users_url: http://localhost/users users_path: /users Mostly you should use the _path flavor. If you need to spec the host or protocol (like for talking to another app or service), then use the _url flavor. -- Josh Susser http://blog.hasmanythrough.com
on 15.03.2007 01:25
> Mostly you should use the _path flavor. If you need to spec the host or > protocol (like for talking to another app or service), then use the _url > flavor. Usually the rule is _path in views, _url in controller (where you mostly use it together with redirect_to).
on 15.03.2007 10:06
DHH wrote: >> Mostly you should use the _path flavor. If you need to spec the host or >> protocol (like for talking to another app or service), then use the _url >> flavor. > > Usually the rule is _path in views, _url in controller (where you > mostly use it together with redirect_to). and what about to use everytime url? (i think that the DHH's reply will be: "you're insaaaane"... :) )
on 15.03.2007 16:22
David [or anyone], would you mind explaining why you wouldn't want to use the _path form in a controller. I've never done it but I don't understand why it's bad form. Thanks. RSL
on 15.03.2007 18:06
Hi -- On 3/14/07, Josh Susser <rails-mailing-list@andreas-s.net> wrote: > > > Mostly you should use the _path flavor. If you need to spec the host or > protocol (like for talking to another app or service), then use the _url > flavor. I guess a case could be made, though, that for REST compliance, you'd want to use _url throughout, as _path doesn't give you a unique identifier that can be used to locate a resource outside of this particular browser session. David -- Q. What is THE Ruby book for Rails developers? A. RUBY FOR RAILS by David A. Black (http://www.manning.com/black) (See what readers are saying! http://www.rubypal.com/r4rrevs.pdf) Q. Where can I get Ruby/Rails on-site training, consulting, coaching? A. Ruby Power and Light, LLC (http://www.rubypal.com)
on 15.03.2007 18:07
> I guess a case could be made, though, that for REST compliance, you'd > want to use _url throughout, as _path doesn't give you a unique > identifier that can be used to locate a resource outside of this > particular browser session. I'm not sure I follow? *_path are for views because ahrefs are implicitly linked to the current URL. So it'd be a waste of bytes to repeat it over and over. In the controller, though, *_url is needed for redirect_to because the HTTP specification mandates that the Location: header in 3xx redirects is a complete URL.
on 15.03.2007 19:04
Hi -- On 3/15/07, DHH <david.heinemeier@gmail.com> wrote: > > > I guess a case could be made, though, that for REST compliance, you'd > > want to use _url throughout, as _path doesn't give you a unique > > identifier that can be used to locate a resource outside of this > > particular browser session. > > I'm not sure I follow? *_path are for views because ahrefs are > implicitly linked to the current URL. So it'd be a waste of bytes to > repeat it over and over. I'm overstating it (didn't mean to dismiss all relative URLs :-) -- just thinking out loud about a case where the hyperlinks in a response might be needed to identify resources but the response not contain the necessary base URL identification. I'm not coming up with any great sample scenarios, though. David -- Q. What is THE Ruby book for Rails developers? A. RUBY FOR RAILS by David A. Black (http://www.manning.com/black) (See what readers are saying! http://www.rubypal.com/r4rrevs.pdf) Q. Where can I get Ruby/Rails on-site training, consulting, coaching? A. Ruby Power and Light, LLC (http://www.rubypal.com)
on 15.03.2007 23:58
Thanks, David. That makes complete sense. I got why you'd want to use _path in the views. I just didn't know that bit about the HTTP specs. RSL