1

我正在编写一个关于视频游戏系统的 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,并且 u 从任天堂 wii u 中删除。

我检查了 app/models/MyModel.rb 文件,它看起来是正确的。

  owns_nintendo_wii, :owns_nintendo_wii_u, :owns_playstation, :owns_playstation_2, :owns_playstation_3, :owns_ps_vita,

我在终端中向上滚动并验证我的脚手架在那个位置周围没有错字,它看起来很好。

4

2 回答 2

0

如果您还没有schema.rb文件,请运行rake db:migrate以创建数据库。

于 2012-09-24T21:12:36.293 回答
0

我看到你做了什么。当你创建迁移时,你做了这样的事情吗?

rails g migration add_stuff owns_nintendo_wii_u:string owns ps_vita:string
                                                           ^
                                                          (space)

看起来您的迁移运行并创建了 2 列: ownsps_vita. 您可以通过直接查看schema.rb或检查数据库来验证这一点。

如果您使用的是 sqlite,那么您可以这样做:

$ sqlite3 db/development.sqlite3

> .schema
  (spits out schema)
> .exit
于 2012-09-24T21:40:54.297 回答