我刚刚使用生成脚手架进行此设置,我立即收到此错误。出于某种原因,它试图将“用户”评估为第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"
答案 0 :(得分:2)
您可能会像f
一样宣布您的表单<%= form_for @player do |f| %>
。f.text_field
。然后,当您使用@player
时,rails magic会尝试将您的符号与: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 />
代替:
{{1}}