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