我想列出与某个特定类别和类(class)相关的所有帖子。
我有:
class Post < ActiveRecord::Base
has_many :category_posts
has_many :categories, :through => :category_posts
has_many :classroom_posts
has_many :classrooms, :through => :classroom_posts
end
class Category < ActiveRecord::Base
has_many :category_posts
has_many :posts, :through => :category_posts
end
class CategoryPost < ActiveRecord::Base
belongs_to :category
belongs_to :post
end
class Classroom < ActiveRecord::Base
has_many :classroom_posts
has_many :posts, :through => :classroom_posts
end
class ClassroomPost < ActiveRecord::Base
belongs_to :classroom
belongs_to :post
end
我想做这样的事
Post.where(["category.id = ? AND classroom.id = ?", params[:category_id], params[:classroom_id]])
这确实是一个非常简单的任务,但我不知道我应该寻找什么(关键字)。
和this一样的问题, 但在 rails 上。
编辑: 我在问题中添加了更多细节。 这有效,但前提是我同时指定了两个参数。女巫并不总是这样——我不知道会指定什么参数。
Post.joins(:categories, :classrooms).where(["categories.id = ? AND classrooms.id = ?", params[:classroom_id], params[:category_id]])
最佳答案
关于ruby-on-rails - Rails 3 查找所有关联记录 has_many :through,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2798742/