我有两个表演和表演模型(以戏剧或喜剧形式表演)。它们在模型中的关联如下:
class Show < ActiveRecord::Base
has_many :performances, :dependent => :destroy
accepts_nested_attributes_for :performances
end
class Performance < ActiveRecord::Base
belongs_to :show
end
在性能模型中,有一个称为:start_time的日期时间。
如何在模型中定义一个范围,该范围将返回至少具有一种其:start_time在将来出现的表演的所有演出?
另外,如何定义一个范围,该范围返回将来在其:start_time中没有任何表演的所有演出?
最佳答案
class Show < ActiveRecord::Base
has_many :performances, :dependent => :destroy
accepts_nested_attributes_for :performances
scope :shows_with_pending_performance, includes(:performances).where("performances.start_time >= ? ", Date.today)
end
class Performance < ActiveRecord::Base
belongs_to :show
end