13
我想創建一個Ruby類,其中initialize
方法需要一個選項哈希。然後我爲這個班級提供了attr_accessor
這些選項。現在,我可以做類似self.send(method,=,value)不起作用
class User
attr_accessor :name, :email, :phone
def initialize(options)
self.name = options[:name]
self.email = options[:email]
self.phone = options[:phone]
end
end
User.new(:name => 'Some Name', :email => '[email protected]', :phone => 435543093)
但它對我來說不是很乾。相反,我想做
class User
attr_accessor :name, :email, :phone
def initialize(options)
options.each do |option_name, option_value|
# Does not work!!
self.send(option_name, '=', option_value)
# Does not work either!!
self.send(option_name, '=' + option_value)
end
end
end
User.new(:name => 'Some Name', :email => '[email protected]', :phone => 435543093)
但我不能讓語法工作!
我在做什麼錯?
謝謝!這就說得通了。 – raikiri 2011-01-09 02:35:25