13
initialize
メソッドがオプションのハッシュを取るRubyクラスを作成しようとしています。私はクラスのためにこれらのオプションをattr_accessor
として持っています。今、私は何かをすることができましたself.send(メソッド、=、値)が機能しません
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)
しかし、それは私に非常にDRY感じません。代わりに、私はしたいと思います
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