如何在Rails中过滤资源?

时间:2015-12-30 12:36:08

标签: ruby-on-rails ruby-on-rails-4

目前,我正在Rails中建立一个博客,我很好奇是否有正确的方式以下列方式显示资源?

enter image description here

在这种情况下,您可以列出所有帖子,如果需要,还可以列出单独的类别帖子。

您通常会说 - 使用范围,但我不确定范围会产生以下影响: / blog / features / blog / releases

那么,我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

#config/routes.rb
resources :blogs, path: "blog" do 
   get ":category", to: :index, on: :collection #-> url.com/blog/:category
end

#app/controllers/blogs_controller.rb
class BlogsController < ApplicationController
   def index
       @posts = params[:category] ? Post.joins(:category).where(category: {name: params[:category]}) : Post.all
   end
end

#app/views/posts/index.html.erb
<% @posts.each do |post| %>
   ...
<% end %>