Rails has_many通过,调用具有特定类别的所有事件

时间:2017-06-25 04:19:50

标签: ruby-on-rails activerecord call has-many-through

所以我有事件,每个事件可以有一个或两个类别,他们的模型如下

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

可以做到这一点,但这似乎不起作用,我找到了一些解决方案,但它们看起来效率不高。什么是最好的方法呢?

1 个答案:

答案 0 :(得分:1)

您必须加入表格

Event.joins(:categories).where("categories.name = ?", "special")