2013-06-27 67 views
0

我有些路线是这样的:Ruby on Rails的:设置导轨和路线:路径

resources :users do 
    member do 
    get 'services', :path => 'services/edit', :defaults => { :servicable => 'user' } 
    end 
end 

这让我有localhost:3000/users/1/services/edit

我试图动态路径添加到它。

我尝试添加:as => :edit_services_path

get 'services', :path => 'services/edit', :defaults => { :servicable => 'user' }, :as => :edit_services_path 

,所以我可以尝试这样的事情:

<%= link_to "Edit", edit_services_path %> 

但它给我的错误。

undefined local variable or method `edit_services_path' for #<#<Class:0x007f856fd5a970>:0x007f856ff18690> 

我试图寻找你指定,如果我自定义我的道路,但还没有任何运气添加新路径的正确方法,

感谢

回答

1

使用方法不产生一个动态路径,而不是你正在尝试使用的路径。它产生:

services_user GET /users/:id/services/edit(.:format)    users#services {:servicable=>"user"} 

并添加:as选项创建:

edit_services_path_user GET /users/:id/services/edit(.:format)    users#services {:servicable=>"user"} 

这是一个有点混乱,因为通常path未在指定的路径,但作为路由本身上的帮手(即services_user路径将是services_user_pathpath helper),所以如果命名的事宜中有很多对你这个可以巧妙,但它产生的动态路径,你可以使用rake routes为你改变的事情,以及查看这些。

+0

天上的感谢!是的,我是用'耙routes'但我找不到'services_user',直到你说,我一直在寻找它,谢谢! – hellomello