如何知道模型是否在Ruby中设置了关系?

How to know if an Model has a relationship set in Ruby?

本问题已经有最佳答案,请猛点这里访问。

我有一个这样的模型:

1
2
3
4
5
class Year < ActiveRecord::Base
  extend FriendlyId
  friendly_id :year, use: :slugged

  has_many :events

我希望在我的控制器中获得至少具有一个事件的所有年份。我怎样才能做到这一点?

我试图做到这一点:

1
2
3
4
 Year.includes(:events).first.events
  Year Load (0.3ms)  SELECT  `years`.* FROM `years`  ORDER BY `years`.`id` ASC LIMIT 1
  Event Load (0.3ms)  SELECT `events`.* FROM `events` WHERE `events`.`year_id` IN (1)
 => #<ActiveRecord::Associations::CollectionProxy []>

但是这将返回空集。


加入活动。这给了您所有的年份,除了那些没有附加事件的年份。

1
Year.joins(:events).distinct