3rd Dec, 2008

Roxy: Ruby代理库

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无疑是个更好的选择,更多信息及安装方法请看这里

留条评论?

Your response:

Categories