#34
May 21, 2007

Named Routes

When you add a custom route, make it a named route so you have url helper methods to easily link to that new route. See episode for details.
Download (30.9 MB, 6:39)
alternative download for iPod & Apple TV (9.8 MB, 6:39)
# routes.rb
map.resources :projects
map.task_archive 'tasks/:year/:month', :controller => 'tasks', :action => 'archive'
map.home '', :controller => 'projects', :action => 'index'
<!-- projects/index.rhtml -->
<ul>
<% for project in @projects %>
  <li>
    <%= link_to project.name, project_path(project) %>
    | <%= link_to "Edit", edit_project_path(project) %>
    | <%= link_to "Destroy", project_path(project), :method => :delete %>
  </li>
<% end %>
</ul>

<p><%= link_to "New Project", new_project_path %></p>

RSS Feed for Episode Comments 20 comments

1. Jermaine May 21, 2007 at 00:40

Great episode as always!

If I'm not mistaken, you've used this kind of a named route ('resources') behind the scenes in episode 21 as well....(REST).

Gr,

- J.


2. Vladislav May 21, 2007 at 01:17

Cool!


3. Vigosan May 21, 2007 at 02:28

Congratulations,
this screencast is fabulous.


4. Ryan Bates May 21, 2007 at 07:24

@Jermaine, yep, I've been using this technique all over the place in previous episodes. Thought it was about time I explained it. :)


5. Gary May 21, 2007 at 08:26

For some reason I get a NameError whenever I try to use path but url works great. Is there any reason to believe that path is deprecated or replaced with something else? Or is there something else we need to set somewhere for this to work right?


6. Ryan Bates May 21, 2007 at 09:03

@Gary, what version of Rails are you using? It may require 1.2 but I"m not sure.


7. Geoff Buesing May 21, 2007 at 09:39

Great stuff!

Btw, Errtheblog.com has a helpful rake task to print out all of your named routes, here:

http://require.errtheblog.com/projects/browser/dugg/lib/tasks/err.rake?format=raw

So whenever I need to know what named routes are available for a resource, I just do:

rake routes | grep post


8. Ryan Bates May 21, 2007 at 11:40

That's extremely useful, thanks Geoff!

For those not sure how to install it, add the .rake file to your lib/tasks directory.


9. Gary May 22, 2007 at 08:36

I finally understood what was the problem with path not working. I had updated the gems but hadn't updated the version number in environment.rb.

Once I updated it everything worked fine.


10. Gabriel Mansour Sep 10, 2007 at 10:34

Hi Ryan,

One thing I noticed was that when

/page/1;edit
/page/edit/1


11. Mo Rashed Oct 27, 2007 at 09:36

Sup Ryan,

When you did:

map.task_archive 'tasks/:year/:month', :controller => 'tasks', :action => 'archive'

Doesnt this conflict with the standard routing:

tasks/show/2

thnxs


12. Nike Air Max 90 Jan 11, 2010 at 22:10

Nice post,nice sharing.Thanks@


13. Nike Air Max 90 Jan 22, 2010 at 17:53

Thank you for sharing.Nice post.


14. LouisVuitton bags Jan 22, 2010 at 19:30

f ef erfew fwefwefew order skelaxin from canadian pharmacy


15. lida daidaihua Jan 22, 2010 at 19:32

there any way to put the format string things in the file other than environment.rb?


16. javon Jan 25, 2010 at 22:39

there any way to put the format string things in the file other than environment.rb?


17. Nike Air Max 90 Jan 28, 2010 at 21:26

Thank you for sharing.Nice post.


18. 网页游戏 Feb 02, 2010 at 23:50

try to use path but url works great. Is there any reason to believe that path is deprecated or replaced with something else? Or is there


19. 幻想三国 Feb 02, 2010 at 23:52

I finally understood what was the problem with path not working. I had updated the gems but


20. 仙域 Feb 02, 2010 at 23:54

If I'm not mistaken, you've used this kind of a good tony

Add your comment:

(SKIP THIS ONE)

(required)

(not shown)


(use pastie or gist for code)

sponsored by:
if you want to help:
required:
Get Quicktime Player
Give Back to Open Source