如何展示具有特殊类别的文章?

时间:2016-01-28 18:01:31

标签: ruby-on-rails ruby has-and-belongs-to-many

因此,我使用has_and_belong_to_many关联两个模型(ArticleCategory)。我的标题与下拉菜单有链接,其中显示了不同的类别。我的所有文章都在索引页面上,我需要根据它的类别对其进行排序,以便用户可以选择他们想要查看的内容。我想我应该在类别控制器中做一些表演动作,但不知道到底是什么。为了解决这个问题,我在视图和控制器中使用了不同的每次迭代,但不幸的是它没有帮助。

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:1)

您可以使用

选择具有特定类别的文章
selected_articles = Category.find_by_name("Name of category").articles

或者,如果您不知道名称

selected_articles = Category.find(category_id).articles

答案 1 :(得分:0)

Article.joins(:category).where(categories: {id: :your_category_id})

答案 2 :(得分:0)

class ErrorHandler{
    public static function excep_handler($e)
    {
        print_r($e);
    }
}
set_exception_handler(array('ErrorHandler','excep_handler'));

这将允许您使用:

#config/routes.rb
resources :articles do
   get ":category_id", action: :index, on: :collection #-> url.com/articles/:category_id
end

#app/controllers/articles_controller.rb
class ArticlesController < ApplicationController
   def index
      if params[:category_id]
         @articles = Article.joins(:categories).where(category: {id: params[:category_id]})
      else
         @articles = Article.all
      end
   end
end