为什么错误消息“为nil调用id,这将错误地为4”

时间:2010-12-06 18:53:39

标签: ruby-on-rails

我是Ruby on Rails的新手,试图让我的第一个应用程序工作,这涉及上传CSV文件,然后将数据解析为表格。 找到了关于上传CSV here的精彩教程,但是当我尝试它时,我收到以下错误:

'调用id为nil,这将错误地为4 ......'

我确定,因为我在以下代码中犯了一些简单的错误:

>  <h2>Upload a CSV file to import into the database</h2>
>      <% form_for @import, :html => { :multipart => true } do |f| %>
>       <%= f.file_field :csv %>
>       <select name="import[datatype]" size="1">
>       <option value="releases"> Press Releases </option>
>       </select>
>         <%= f.submit "Import" %>
>     <% end %> <%= link_to 'Back', genotypes_path %>

加载我的应用页面http://localhost:3000/genotypes/new时会发生这种情况。

我正在使用Ruby 1.8.7,Rail 2.1.0。

有谁看到我在这里做错了什么?

TIA,

- 瑞克

1 个答案:

答案 0 :(得分:3)

最可能的罪魁祸首是你没有在控制器中设置@import。这是一个常见的错误消息,指向在某处使用的nil对象。在你的情况下,它可能是导致你出问题的form_for,因为form_for将在给定的对象上查找id,以了解是否将表单提交给更新操作或创建操作。如果该对象为nil,则#id引用其object_id,而不是其数据库主键;因此有点神秘的错误信息。