2016-05-06 62 views
-2

我想創建變量item 而寫的東西是這樣的:如何將屬性添加到ruby變量?

item.property1 = "whatever" item.poperty2 = "whatever"

我該怎麼辦呢?

現在我這樣做是這樣的: item = {} item [:property1] = "whatever"

任何其他的選擇嗎?

+6

我建議你閱讀[一些基本教程](http://www.tutorialspoint.com/ruby/)。 –

回答

1

這裏是我知道的最簡單的解決方案:

如果你事先知道的屬性,然後使用結構:

Item = Struct.new(:property1, :property2) 
item = Item.new('blue', 'medium') # or: 
item = Item.new 
item.property1 = 'blue' 
item.property2 = 'medium' 

puts item.property1 
puts item.property2 

否則,您可以使用OpenStruct:

require 'ostruct' 
item = OpenStruct.new 
item.property1 = 'blue' 
item.property2 = 'medium' 

puts item.property1 
puts item.property2 
+0

OpenStruct對此很棒。 – tadman

+0

只是你知道,我從這個腳本中刪除了一行不正確的代碼:'item = OpenStruct.new('blue','medium')#或者:'' –

0

您需要創建一個對象來訪問這樣的變量。

class Item 
    attr_accessor :property1, :property2 
end 

那麼你可以做你寫的:

item = Item.new 
item.property1 = "whatever" 
item.poperty2 = "whatever" 

如果你是在談論一個Rails的數據庫對象,還有更多的它,雖然(如第一次寫數據庫遷移)。