Roxy是Ryan Daigle写的一个Ruby代理库,它可以让你轻松的向关联对象添加方法,就像has_many为关联对象添加的build和create方法那样,比如:
require 'roxy'
class Person
include Roxy::Moxie
attr_accessor :first, :last, :parents
proxy :parents do
def divorced?
proxy_target.size > 1 and proxy_target.collect { |parent| parent.last }.uniq.size > 1
end
end
end
现在你就可以直接在person.parents上直接调用divorced?方法了,
-> person.parents.divorced? => true|false
当然如果只是简单的修改find条件,那么named_scope无疑是个更好的选择,更多信息及安装方法请看这里。

