如何在rails上找到属于Ruby类别的文章

时间:2015-08-25 13:45:24

标签: ruby-on-rails ruby

我想只显示属于该类别的文章。 例如:用户单击该类别,他将获得此类别中所有文章的列表。

文章模型

class Article
  include Mongoid::Document
  include Mongoid::Timestamps

  field :title, type: String
  field :content, type: String

  belongs_to :user
  #kategorie
  belongs_to :article_category

文章控制器

  class ArticlesController < ApplicationController
    def article
    @article = Article.order_by(created_at: 'desc').page params[:page]
  end

  def view_article
    @article = Article.find(params[:id])
  end
end

ArticleCategory模型

class ArticleCategory
  include Mongoid::Document
  include Mongoid::Timestamps


  field :name, type: String

  has_many :articles


end

路线

  resources :article_categories do
  resources :articles, shallow: true
  end

ArticleCategories控制器

class ArticleCategoriesController < ApplicationController

  def index
   @article = Article.find
  end

    end

在文章视图中,我显示所有文章,在articles_categories视图中,我想显示特定的帖子。那么控制器应该怎么样(我现在谈论的是ArticleCategoriesController。) 我尝试使用Article.find_by(名称:&#39; JS&#39;)但它无效。我正在寻求帮助:)

1 个答案:

答案 0 :(得分:1)

你可以这样做:

class ArticleCategoriesController < ApplicationController
    def index
        @category = ArticleCategory.find(params[:id])
        @articles = @category.articles
    end
end

因为ArticleCategory模型has_many Articles,您可以执行@categoy.articles

更新

现在,要在视图上显示文章,您必须像这样交互te @articles集合(数组):

<% @articles.each do |article| %>
    <%= article.title %><br>
    <%= article.body %><br><br>
<% end %>

更新2

您可以这样做以创建类别的链接:

<%= link_to category.name, category %>

提醒:

我认为你有一个基本问题。我建议你阅读这样的内容:

会给你一个很好的基础