我現在的對象:紅寶石對象數組...或哈希
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