【发布时间】:2015-10-13 20:18:35
【问题描述】:
我有以下模型,它们目前具有相同的范围:
program.rb
has_many: :campaigns
scope :visible, -> { where(status: 1) }
campaign.rb
belongs_to: programme
scope :visible, -> { where(status: 1) }
我想编辑campaign 范围以仅搜索可见的programmes。理想情况下,我想将该范围更改为:
(很可能在函数中)
def self.visible
Programme.visible.campaigns.where.(status: 1)
end
但这又回来了:
undefined method `campaigns' for #<Programme::ActiveRecord_Relation:0x007f8c9677cd68>
有人可以解释为什么我不能这样做吗?另外,如果对此有任何解决方案将不胜感激?最好不使用.joins(但我会采取我能得到的)
谢谢
【问题讨论】:
标签: ruby-on-rails-4 activerecord scope associations