我实际上无法找到相关文档,所以如果你有一个方便的链接,也会非常感激。
所以我有:
resources :users do
resources :posts, only: [:index, :create, :show]
end
我想通过命名路由访问posts
的索引操作。我试过了这个问题:<%= link_to 'User Posts', user_posts_path %>
但它说缺少user_id
。有什么想法吗?
答案 0 :(得分:2)
使用嵌套资源路由时,您需要提供父资源的引用ID。在您的案例资源user
中。你可以这样做:user_posts_path(user)
。生成的路线类似于:/users/1/posts
,其中1是:user_id
,或者如果您想要一条路线:/users/posts
,您应该这样做:
resources :users do
collection do
resources :posts
end
end
答案 1 :(得分:0)
它要求user_id
因为您将用户定义为资源,而是将其更改为命名空间:
namespace :users do
resources :posts, only: [:index, :create, :show]
end