0

我刚刚使用生成脚手架进行此设置,我立即收到此错误。出于某种原因,它试图将“用户”评估为第 20 行中的一种方法,并且只有用户。它的名称很好,但尽管它们是完全相同的代码(具有不同的名称),但它试图以不同的方式评估第二个代码。

undefined method `user' for #<Player:0xb66e4798>

提取的源代码(大约第 20 行):

17:   </div>
18:   <div class="field">
19:     <%= f.label :user %><br />
20:     <%= f.text_field :user %>
21:   </div>
22:   <div class="field">
23:     <%= f.label :password %><br />

模板包含的痕迹:app/views/players/new.html.erb

由于这是生成的,我自己手动更改的唯一一件事就是路线。所以这是 routes.rb 中我更改了根目录的部分:

# root :to => 'welcome#index'
root :to => "players#index"
4

1 回答 1

2

你可能f这样声明你的表单:<%= form_for @player do |f| %>. 然后,当您使用 时f.text_field,rails 魔术会尝试将您的符号与@player属性之一匹配。

如果:user不是 的实例变量Player,那么,您需要FormTagHelper#text_field_tag

17:   </div>
18:   <div class="field">
19:     <%= f.label :user %><br />
20:     <%= text_field_tag :user %>
21:   </div>
22:   <div class="field">
23:     <%= f.label :password %><br />
于 2013-02-14T20:03:56.123 回答