嵌套资源link_to

时间:2014-12-17 07:06:33

标签: ruby-on-rails

我无法链接到像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

1 个答案:

答案 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
相关问题