关联条件和with_options方法的新活动记录语法

时间:2013-07-05 11:34:51

标签: ruby activerecord ruby-on-rails-4

在新版本的活动记录中(4.x我猜)条件语法为

等关联
has_many :items, conditions: { marker:true }

已弃用。它看起来应该是

has_many :items, -> { where marked:true }

新语法看起来更复杂(在我看来),但使用Object#with_options方法无法使用它。

在旧版本中,我的代码就像

with_options conditions:{marker:true} do |assoc|
  assoc.has_many :items
end

但现在好像我不能再这样做了。

有没有人知道如何为我的所有关联添加条件而无需一次又一次地复制/粘贴它?

由于

1 个答案:

答案 0 :(得分:0)

经过一些挖掘,看起来调用with_options产生的块变量在最后一个变量是proc对象时响应不同。解决方法是使用空哈希结束调用。

with_options conditions:{marker:true} do |assoc|
  assoc.has_many :items, -> { where marked:true }, {}
end