0

これを使用してテーブルPeopleを作成するとします:

rails new app; cd app; rails g scaffold Person name:string; rake db:migrate

次に、次を使用して行の名前を設定してみてください。

rails console
Loading development environment (Rails 3.2.3)
1.9.2p318 :001 > @person = Person
=> Person(id: integer, name: string, created_at: datetime, updated_at: datetime) 
1.9.2p318 :002 > @person.name = "test"
NoMethodError: undefined method `name=' for #<Class:0x007f9b8d807098>

未定義のメソッドで最後の行が失敗するのはなぜですか?

4

1 に答える 1

3

あなた@person = Personは文字通り @person が Person クラスだと言っています。

を使用する必要があります@person = Person.new()。インスタンス変数は新しい Person オブジェクトであるため、属性を割り当てることができます。

于 2012-04-11T22:07:39.503 に答える