找不到Rails'方法' in form_for f.text_field

时间:2015-08-20 02:51:21

标签: ruby-on-rails ruby ruby-on-rails-4

我使用以下命令添加了一个新列:

rails g migration AddMatrixPositionToAnswer matrix_position:integer

然后运行命令:

rake db:migrate

现在,如果我将以下代码写入视图,则会找到Method not found

<%= f.number_field :matrix_position, :class => 'form-control' %>

错误是:

Method not found

更新:

迁移文件: enter image description here

数据库架构: enter image description here

表格:

<%= form_for(@answer) do |f| %>


  <div class="field">
    <%= f.label :matrix_position %><br>
    <%= f.text_field :matrix_position %>
  </div>
  <div class="field">
    <%= f.label :value %><br>
    <%= f.text_field :value, :class => 'form-control', :Placeholder => 'Any value (e.g. M (Male), F (Female), United States (US))' %>
  </div>
  <%= f.hidden_field :question_id %>

  <div class="actions">
  <%= f.submit(:value => ' Save', :class => 'fa btn btn-success' ) %>
<hr />

  </div>
<% end %>

有趣的是,&lt;%= f.label:matrix_position%&gt;作品。但是&lt;%= f.text_field:matrix_position%&gt;不起作用。

1 个答案:

答案 0 :(得分:1)

您的数据库表列中实际上有一个TYPO。仔细看: 数据库中的martix_position。但是,您在matrix_position中指定f.text_field,这就是它失败的原因:)

因此,要么使用其他迁移将数据库列更改为matrix_position。或者,在表单中使用:f.text_field :martix_position,您的选择: - )