【发布时间】:2017-11-21 14:53:38
【问题描述】:
在练习 Rails 时,我遇到了一个无法解决的问题,如下所示: - 当我点击类别名称时,我想显示所有帖子属于该类别(通过外键 category_id),我在'post'控制器中编写了一个方法:
def show_post_category
if params[:category_id]
@categories = Category.find_by(params[:category_id])
@posts = @categories.posts
else
@posts= Post.all
end
end
在视图中,我编写了显示类别名称超链接的代码:
<% @categories = Category.all %>
<% @categories.each do |c| %>
<li>
<%= link_to c.name, :controller => "posts", :action => "show_post_category", :category_id => c.id %>
</li>
<% end %>
但是,当我单击类别名称时,会显示错误
'No route matches {:action=>"show_post_category", :category_id=>5,:controller=>"posts"}.
这是路由文件中的代码:
Rails.application.routes.draw do
resources :posts
resources :categories
resources :categories do
posts do
get 'show_post_category'
end
end
end
我的代码哪里有问题?请给我解决方案。
非常感谢,
【问题讨论】:
-
get 'show_post_category'->get '/show_post_category/:category_id'
标签: ruby-on-rails ruby