小编rai*_*iri的帖子

self.send(method,=,value)不起作用

我正在尝试创建一个Ruby类,其中该initialize方法采用选项的哈希值.然后,我将这些选项作为attr_accessor课程的选项.现在,我可以做点什么

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 => 'some-name@some-company.com', :phone => 435543093)
Run Code Online (Sandbox Code Playgroud)

但它对我来说并不觉得很干.相反,我想做

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 => 'some-name@some-company.com', :phone => 435543093)
Run Code Online (Sandbox Code Playgroud)

但我不能让语法工作!

我究竟做错了什么?

ruby ruby-on-rails

13
推荐指数
1
解决办法
1万
查看次数

标签 统计

ruby ×1

ruby-on-rails ×1