与えられた:
class Categories < ActiveRecord::Base
has_many :posts
end
と
class Posts < ActiveRecord:Base
attr_accessible :category_id
belongs_to :category
end
少なくとも 1 つの投稿が関連付けられているすべてのカテゴリの配列を取得するにはどうすればよいですか?
与えられた:
class Categories < ActiveRecord::Base
has_many :posts
end
と
class Posts < ActiveRecord:Base
attr_accessible :category_id
belongs_to :category
end
少なくとも 1 つの投稿が関連付けられているすべてのカテゴリの配列を取得するにはどうすればよいですか?
(パフォーマンスの観点から)より良い解決策は、categories
テーブルと:counter_cache => true
、belongs_toアソシエーション宣言(すでに調べたもの)にcount列を含めることです。
詳細はこちら: http: //guides.rubyonrails.org/association_basics.html#belongs_to-counter_cache
テーブルが比較的小さい場合は、次のクエリを実行できます。
Category.joins(:posts).group(:category_id).having('count(category_id) >= ?', 1)