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 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
stevemolitor-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org 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! > > SteveThe 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 -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
> 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). --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
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"... :) ) -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
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 3/14/07, DHH <david.heinemeier-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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). > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hi -- On 3/14/07, Josh Susser <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> > stevemolitor-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org 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.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) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
> 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. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hi -- On 3/15/07, DHH <david.heinemeier-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
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 On 3/15/07, DHH <david.heinemeier-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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. > > 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. > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
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).I''m getting an error when trying to use a resource_url helper inside my controller to render a view. Here is the problem explained: http://stackoverflow.com/questions/1150339/rails-2-3-2-trying-to-render-erb-instead-of-haml -- Posted via http://www.ruby-forum.com/.
> Here is my advise: use _url all the time. Yeah it wastes a few bytes, > but the day you''ll add https support to your site it will save you tons > of headaches.How would it save headaches in case of https?. Lets say you have apache in front of your rails server and only apache is configured for https. And http is disabled in apache. Now with _url option, the web page gets generated as <form ... action="http://host/resource/1" ... And apache passes it along as it as, unless one enables URL rewriting in apache to replace http with https. Where as if it is just _path it gets generated as <form ...action="/resource/1" ... This form submission works irrespective of how(http or https) apache is configured. So the earlier recommendation ( i.e., use _path in views _url in specific use cases) is still a better one compared to use _url in all cases. (no period ;-) ) -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Here''s a reason where I wish I was using _url everywhere. I''ve switched my site to almost all ssl except for a google map page which needs to be in non-ssl ($10,000 for the ssl version). On that page (just like every other page) are about 15-20 navigation links that should point to https/ssl pages even though the map page itself is http. I wish I wouldn''t have to go through and change all those links to point to https using _url. I could instead use ssl_requirement and specify all pages should be ssl except for my map page, but I think I''d rather make all 15-20 links of navigation use the _url instead and force https to avoid an unneeded redirect/latency. I actually have redirects in apache conf file instead of using ssl_requirement, but same idea...why redirect when you can specify _url and have less latency? If you have a solution for me that would relieve my need to have _url for all my navigation due to the one http map page, please, let me know. Kevin Madhav V. wrote in post #969656:> > How would it save headaches in case of https?. >-- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Seemingly Similar Threads
- multiple views, and some routers
- Testing arbitrary post action parameters
- [rspec, rails] Restful Routes in controller specs
- Problems with *_path() and *_url() helpers when using Publisher
- "best practices" for Rails serving RESTful JSON services for use by AngularJS, Ember.js, etc.