我定义嵌套资源这样如何使用Ruby on Rails的命名路由
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”错误
谢谢你,那有效。还有一个问题,为什么我的路由中的POST DELETE路由没有得到自动生成的路径名? – GingerJim
没关系,想通了我的自我。它们都有相同的路径,唯一不同的是HTTP动词。准确地说是 – GingerJim
。 url助手很适合定位标记。 POST/PUT/DELETE方法通常包含一个表单,在这个表单中,你必须明确指出(取决于表单助手)与URL一起的HTTP动词。 (我假设你没有使用可怕的Rails js hacks作为anchor标签:remote => true) – ChuckE