2013-04-22 76 views
3

我有一個Ruby散列,說訪問哈希屬性相同的方式,訪問對象屬性

h={name: "john", age: "23"} 

它是不是一個對象,只是從一個對象創建哈希值。我想在訪問一個對象時使用方法屬性來訪問它的值。即:

h.name => "john" 
h.age => 23 

可以這樣做嗎?

+0

這有什麼錯'H [名]或H [年齡]'? – squiguy 2013-04-22 06:33:37

+0

在一個rabl模板中,我只想渲染一個散列,而不是一個對象。 – sovanlandy 2013-04-22 06:40:50

+0

如果它是一個散列,那麼它是一個對象。 – sawa 2013-04-22 06:45:43

回答

9

你的情況,這將是得心應手openstruct

require 'ostruct' 

h = OpenStruct.new(name: "john", age: "23") 

h.name #=> "john" 
h.age #=> 23 
3

也許這是你在找什麼

item = Struct.new(:id, :name) 
item.new(1, 'Name')