3

希望设置一个可以返回实例数组的类方法。我在尝试修改实例的变量时遇到了一些麻烦NoMethodError: undefined method 'name=' for #<Class:0x007fe65c8560c0>

class User
  attr_accessor :name

  def self.sample_users
    megan = self.class.new
    megan.name = "Megan"

    jack = self.class.new
    jack.name = "Jack"

    [megan, jack]
  end
end

我觉得这在 Ruby 中应该是可能的。有什么指导吗?

4

2 回答 2

5

使用只是new代替self.class.new

class User
  attr_accessor :name

  def self.sample_users
    megan = new
    megan.name = "Megan"

    jack = new
    jack.name = "Jack"

    [megan, jack]
  end
end
于 2013-05-22T05:10:29.107 回答
3

self在这种情况下的值是Usersample_users是一个类方法);所以self.class要回来了Class

我想你只是想要self.new

于 2013-05-22T05:10:22.907 回答