我正在努力让以下路由工作:
get 'items/:id/pictures' => 'pictures#show'
我应该使用什么样的辅助方法?使用<%= link_to pictures_item_path do %>
我收到以下错误:
undefined local variable or method `pictures_item_path' for #<#<Class:0x007fa2c6181710>:0x007fa2c40ba7c0>
我尝试过使用get 'items/:id/pictures' => 'pictures#show', as: 'items/:id/pictures'
并收到以下错误:
Invalid route name: 'items_:id_pictures'
答案 0 :(得分:1)
您的路线是正确的。如果您要使用帮助程序,则必须使用Named routes。
路由可以通过传递:as
选项进行命名,以便在源中轻松引用name_of_route_url
作为完整URL,name_of_route_path
作为URI路径:
# In routes.rb
get '/login', to: 'accounts#login', as: :login
# With render, redirect_to, tests, etc.
redirect_to login_url
我希望这很有帮助。
答案 1 :(得分:0)
<强>的routes.rb 强>
get 'items/:id/pictures' => 'pictures#show'
在控制台上执行此命令
rake routes
你会得到像这样的结果
pictures_item GET /items/:id/pictures(.:format) pictures#show
您必须使用pictures_item_path(:id)
或pictures_item_url(:id)
,因为它是会员路线
试试这个:
<%= link_to 'item picture', pictures_item_path(@item_id) %>
详细了解routes