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このコンテキストでの の値はUser(sample_usersはクラス メソッドです); self.class戻る予定ですClass

私はあなたがただ欲しいと思いますself.new

于 2013-05-22T05:10:22.907 に答える