【发布时间】:2017-01-14 20:20:05
【问题描述】:
嗯,我有一个带有 has_many 关联的模型:
class Foo < ApplicationRecord
has_many :bars
end
现在,我知道如果我调用foo.bars,它会加载foo_id 是foo.id 的所有条形,对吗?但我想覆盖它,这样我就可以根据其他参数加载bars ..
这个answer 有点教如何覆盖<< (value) 方法。但是,我不知道如何在我的情况下应用它。
我怎么能这样做?像这样的:
class Foo < ApplicationRecord
has_many :bars do
def bars
self.owner = Bar.where(date: foo.date) #just an example
end
end
end
???
【问题讨论】:
-
仍然不清楚您要做什么。您是否希望关联基于
foos.date = bars.date而不是foos.bar_id = bars.id? -
是的!类似的东西..当我打电话给
foo.bars时,我希望它返回给定日期的所有条形图,而不是属于foo的所有条形图。 -
你真的想要一个正式的协会吗?也许您只是在寻找一种没有所有关联机制的简单方法。
-
好吧,我明白你在说什么,但我想使用 ActiveRecord 关联中的其他方法。但是更好地考虑它知道,也许我也必须覆盖大多数其他方法。无论如何..我想知道如何做到这一点只是出于好奇..
标签: ruby-on-rails associations