访问ActiveRecord关联范围块内的所有者

Ern*_*sto 1 orm activerecord ruby-on-rails associations rails-activerecord

我想做点什么......

class Person
  has_many :things, -> { where(attr: owner.attr) }
end
Run Code Online (Sandbox Code Playgroud)

也就是说,声明与范围块的has_many关联,并且在该块内部我需要访问关联所有者,即对人员模型的引用.

所以,如果我最终调用@some_person.thingsowner在范围块的上方将一个参考@some_person.

我可以使用什么代替owner上面的代码来引用该块中的关联所有者?

Mar*_*rom 5

我还没有编写Rails 4,但这似乎是一种方法.从这里解除:将Rails 4 has_many从具有proc的条件转换为where

has_many :things, -> (object){ where( attr: object.attr )}
Run Code Online (Sandbox Code Playgroud)