我现在的对象:红宝石对象数组...或哈希
class Items
attr_accessor :item_id, :name, :description, :rating
def initialize(options = {})
options.each {
|k,v|
self.send("#{k.to_s}=".intern, v)
}
end
end
我有它被指定为单个对象到一个数组...
@result = []
some loop>>
@result << Items.new(options[:name] => 'name', options[:description] => 'blah')
end loop>>
但是,相反的我分配单数对象到一个数组...我怎么能让对象本身成为一个集合?
基本上要有对象以这样的方式,这样我可以定义方法,如
def self.names
@items.each do |item|
item.name
end
end
我希望是有道理的,可能是我俯瞰一些大计划,这将使我的生活无限更容易2行。
是否有一种方法可以使项目的所有属性都自动表现得像'名称'方法? IE浏览器。调用.descriptions返回与.names相同的内容...? – holden 2009-09-09 21:31:35
如果您想获得冒险精神,可以动态构建这些方法,也可以使用method_missing来捕获调用。 – tadman 2009-09-10 14:43:56
我可以使用Ruby mixins将这种功能添加到包含ActiveRecord对象的所有数组吗?一些指针会很有用。 – Sanjay 2009-09-11 11:18:17