【问题标题】:Rails 'Method not found' in form_for f.text_field在form_for f.text_field中Rails'找不到方法'
【发布时间】:2015-08-20 02:51:20
【问题描述】:

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

rails g migration AddMatrixPositionToAnswer matrix_position:integer

然后运行命令:

rake db:migrate

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

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

错误是:

更新:

迁移文件:

数据库架构:

表格:

<%= 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 %>

有趣的是, 有效。但是 不起作用。

【问题讨论】:

  • 打开实际的 add_matrix_position_to_answer_xxxxxx.rb 迁移文件并发布内容。
  • 也发布架构和表单视图

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


【解决方案1】:

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

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

【讨论】:

  • 我尝试了不同的新项目。在其他项目中一切正常。除了这个。
  • 嘿,我发现了问题。它在您的数据库表的列中是一个 TYPO。你输错了martix_position 而不是matrix_position。我已经更新了我的答案。希望现在可行:-)
猜你喜欢
  • 1970-01-01
  • 2017-03-18
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 2015-05-19
  • 2012-06-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多