Почему сообщение об ошибке «Вызывается идентификатор для ноль, который по ошибке будет 4» - PullRequest
1 голос
/ 06 декабря 2010

Я новичок в Ruby on Rails, пытаюсь заставить работать мое первое приложение, которое включает в себя загрузку файла CSV, а затем анализ данных в таблицах.Нашел отличное руководство по загрузке CSV здесь , но когда я попробую его, я получу следующую ошибку:

'Called id for 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,

- rick

1 Ответ

3 голосов
/ 06 декабря 2010

Наиболее вероятный виновник в том, что вы не устанавливаете @import в контроллере. Это распространенное сообщение об ошибке, указывающее на то, что где-то используется нулевой объект. в вашем случае это, вероятно, form_for, который вызывает у вас проблемы, потому что form_for будет искать идентификатор для данного объекта, чтобы узнать, следует ли отправить форму в действие обновления или действие создания. Если этот объект равен nil, #id ссылается на свой object_id, а не на его первичный ключ базы данных; отсюда и несколько загадочное сообщение об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...