我定义了像这样的嵌套资源
resources :item, :only => [:create, :destroy, :update] do
resources :item_image, :only => [ :new, :create, :show , :destroy, :index]
end
我的路线看起来像这样(佣金路线的输出)
item_item_image_index GET /item/:item_id/item_image(.:format) item_image#index
POST /item/:item_id/item_image(.:format) item_image#create
new_item_item_image GET /item/:item_id/item_image/new(.:format) item_image#new
item_item_image GET /item/:item_id/item_image/:id(.:format) item_image#show
DELETE /item/:item_id/item_image/:id(.:format) item_image#destroy
我认为输出的第一列是“命名路由”。
我想在我的一个视图中显示/item/:item_id/item_image(.:format)的路径。
item_item_image_index GET /item/:item_id/item_image(.:format) item_image#index
我试过了:
<%= link_to "users", item_item_image_index %>
还有这个
<%= link_to "users", item_images_path %>
既不起作用
我得到了“未定义的局部变量或方法`item_images_path / item_item_image_index'”错误
答案 0 :(得分:1)
你应该尝试:
<%= link_to "users", item_item_image_index_url(@item) %>
或
<%= link_to "users", item_item_images_url(@item) %>
或
<%= link_to "users", item_item_image_index_path(@item) %>
或
<%= link_to "users", item_item_images_path(@item) %>
不要忘记url需要:item_id,因此你需要传递一个项作为参数。
实际上,你应该避免命名该模型“ItemImage”。物品有图像,这是你需要知道的。你会得到更好的帮助名称,如“item_images_url”
答案 1 :(得分:1)
item_item_image_index GET /item/:item_id/item_image(.:format) item_image#index
在此路线item_item_image_index
中,您需要在网址<{p}中添加item_id
让您拥有名为@item的Item模型对象,然后您的链接将是
<%= link_to 'users', item_item_image_index_path(@item) %>
此处您需要在路径助手“item_item_image_index
”之后附加“_path”。在传递@item
变量时,@item.id
将item_id
作为{{1}}并完成链接的网址。