-2

has_many私は、記事とカテゴリを含むRails 3ブログアプリを持っています.belongs_to associationスポーツニュース、エンターテイメントニュースなどのカテゴリがたくさんありますが、表示するスポーツニュースのみをビューに表示したい.つまり、表示するスポーツのカテゴリを持つ記事を意味します.そして、それを私のapplication.html.erbに表示したい

class Category < ActiveRecord::Base
  has_many :registrations
  has_one  :payment
  attr_accessible :content, :name, :image, :description

   mount_uploader :image, ImageUploader

end
4

1 に答える 1

0

アソシエーションが次のように定義されている場合:

class Category < ActiveRecord::Base
  has_many :articles
end

class Article < ActiveRecord::Base
  belongs_to :category
end

次に、すべての「スポーツニュース」記事を取得するのは次のように簡単です: (これはコントローラーに入ります)

class SomeController < ApplicationController
  def index
    @sportnews_category = Category.where(name: "sportnews").first
    @sportnews_articles = @sportnews_category.articles
  end
end

また:

@sportnews_category = Category.where(name: "sportnews").first
@sportnews_articles = Article.where(category_id: @sportnews_category)

スコープを定義することもできます:

class Article < ActiveRecord::Base
  belongs_to :category
  scope :sportnews, includes(:category).where(category: {name: "sportnews"})
end

@sportnews_articles = Article.sportnews

次に、あなたのindex.html.erb見解では次のようになります。

<% @sportnews_articles.each do |article| %>
  <h1><%= article.title %></h1>
  <p><%= article.content %></p>
<% end %>
于 2013-03-28T13:30:52.313 に答える