アソシエーションが次のように定義されている場合:
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 %>