我无法链接到像example.com/r/leagueoflegends/posts/1这样的内容。在我的链接中我有
<%= link_to posts.title, category_post_path %>
但最终获得&#34;没有路由匹配{:action =&gt;&#34; show&#34;,:controller =&gt;&#34; posts&#34;}缺少必需的密钥:[:category_id ,:id]&#34;。我尝试了其他方法,但仍然无法正常工作。
我的路线看起来像这样
resources :categories, path: 'r', except: [:index] do
resources :posts
end
家庭控制器
def index
@posts = Post.all
end
答案 0 :(得分:1)
您应该指明您要链接的类别(不仅仅是发布),因此您应该:
<%= link_to post.title, [@category, post] %>
当然,您应该设置@category
变量集,该变量应该在控制器中的过滤器之前进行:
before_filter :set_category
# ...
private
def set_category
@category = Category.find(params[:category_id])
end
并在您的索引操作中:
def index
@posts = @category.posts
end