我正在编写一个关于视频游戏系统的rails应用程序。 我使用脚手架来生成包含字段
的模型:owns_ps_vita
:owns_nintendo_wii_u
但我明白了:
undefined method `owns_ps_vita'
在/app/views/mymodel/_form.html.erb页面上。
我打开了rails控制台并做了
MyModel.new
在结果中看到了:
owns_playstation_3: nil, owns: nil, ps_vita: nil,
owns_nintendo_wii: nil, owns_nintendo_wii_
那里有一个额外的“拥有”应该附加到ps_vita,并且你从任天堂掉下来了。
我检查了app / models / MyModel.rb文件,看起来是正确的。
owns_nintendo_wii, :owns_nintendo_wii_u, :owns_playstation, :owns_playstation_2, :owns_playstation_3, :owns_ps_vita,
我在终端向上滚动并验证我的脚手架在该位置周围没有打字错误,看起来很好。
答案 0 :(得分:0)
如果您还没有schema.rb
个文件,请运行rake db:migrate
来创建数据库。
答案 1 :(得分:0)
我明白你做了什么。在创建迁移时,您是否做过这样的事情?
rails g migration add_stuff owns_nintendo_wii_u:string owns ps_vita:string
^
(space)
您的迁移似乎已运行并创建了两列:owns
和ps_vita
。您可以通过查看schema.rb
或直接检查数据库来验证这一点。
如果您使用的是sqlite,那么您可以这样做:
$ sqlite3 db/development.sqlite3
> .schema
(spits out schema)
> .exit