所以我有事件,每个事件可以有一个或两个类别,他们的模型如下
class Event < ApplicationRecord
has_many :categorizations, inverse_of: :event
has_many :categories, through: :categorizations
end
class Categorization < ApplicationRecord
belongs_to :event
belongs_to :category
end
class Category < ApplicationRecord
has_many :categorizations
has_many :events, through: :categorizations
end
但是我在调用所有具有特定类别的事件时遇到问题,起初我认为类似
Event.categories.where(name: "special").each do |event|
.
.
.
end
可以做到这一点,但这似乎不起作用,我找到了一些解决方案,但它们看起来效率不高。什么是最好的方法呢?
答案 0 :(得分:1)
您必须加入表格
Event.joins(:categories).where("categories.name = ?", "special")