Ruby on rails RubyonRails:使用:path设置rails路由
我有一些这样的路线:Ruby on rails RubyonRails:使用:path设置rails路由,ruby-on-rails,ruby-on-rails-3.2,routes,Ruby On Rails,Ruby On Rails 3.2,Routes,我有一些这样的路线: resources :users do member do get 'services', :path => 'services/edit', :defaults => { :servicable => 'user' } end end <%= link_to "Edit", edit_services_path %> 这允许我拥有localhost:3000/users/1/services/edit 我正在尝试为它添加动
resources :users do
member do
get 'services', :path => 'services/edit', :defaults => { :servicable => 'user' }
end
end
<%= link_to "Edit", edit_services_path %>
这允许我拥有localhost:3000/users/1/services/edit
我正在尝试为它添加动态路径
我尝试添加:as=>:编辑服务\u路径
get 'services', :path => 'services/edit', :defaults => { :servicable => 'user' }, :as => :edit_services_path
所以我可以试试这样的东西:
resources :users do
member do
get 'services', :path => 'services/edit', :defaults => { :servicable => 'user' }
end
end
<%= link_to "Edit", edit_services_path %>
但它给了我错误
undefined local variable or method `edit_services_path' for #<#<Class:0x007f856fd5a970>:0x007f856ff18690>
未定义的局部变量或方法“编辑服务路径”#
如果我正在自定义路径,我尝试搜索添加新路径的正确方法,但没有任何运气
感谢使用您指定的方法确实会生成动态路径,而不是您尝试使用的路径。它产生:
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\u user
路径将是services\u user\u path
),因此如果命名对您来说很重要,可以对其进行优化,但它会生成动态路径,您也可以使用rake routes
在更改内容时查看这些路由。Ohhhh谢谢!!是的,我使用的是rake routes
,但我找不到services\u user
,直到你说了,我才找到,谢谢!