我有一些这样的路线:
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>
如果我正在自定义路径,我尝试搜索添加新路径的正确方法,但没有运气,
由于
答案 0 :(得分: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_path
与{ {3}})所以,如果命名对你很重要,那么这可以很精细,但它会生成动态路径,你也可以使用rake routes
来查看这些内容。