说我创建一个表人们使用它:
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>
为什么最后一行因未定义的方法而失败?
答案 0 :(得分:3)
你的@person = Person
字面上说@person是Person类。
您应该使用@person = Person.new()
。您现在可以分配属性,因为实例变量是一个新的Person对象。