Whiny Nils в рельсах - PullRequest
1 голос
/ 15 июня 2009

Итак, я создаю свой эшафот в рельсах, и он создает обычные файлы CRUD. В моем представлении я копирую форму, найденную в new.html.erb, и вставляю ее в index.html.erb, чтобы я мог создать новую запись из своего индекса. Когда я это делаю, я постоянно получаю следующую ошибку, независимо от того, что я делаю.

Called id for nil, which would mistakenly be 4 -- if you really wanted
the id of nil, use object_id

Я устал искать ответы по всему Интернету и только что узнал, что это называется ничтожный ноль (не очень помогает). Я пытался переименовать переменные своего экземпляра, использовать заглавные буквы, использовать глобальные переменные и т. Д., Но меня огорчает, что в Rails нет библиотеки документации ошибок. Кто-нибудь может помочь?

Ответы [ 2 ]

6 голосов
/ 15 июня 2009

У вас есть все необходимые объекты в вашем контроллере? Похоже, что он вызывает some.id, но что-то не существует в вашем действии index. Посмотрите на все сообщение об ошибке - должно быть сказано, какая строка вызывает его, затем проверьте эту строку в исходных файлах на наличие отсутствующей переменной.

2 голосов
/ 15 июня 2009

В вашем контроллере вам нужно добавить код, найденный в new, в индекс (я думаю, это что-то вроде @model = Model.new). Или лучше: создайте приватный метод с именем expose_new или что-то в этом роде, переместите туда общий код и добавьте before_filter :expose_new, :only => [:index, :new].

Просто примечание ..

Если бы я был на вашем месте, я бы сделал частичную часть вашей формы в новом, и отобразил бы ее как в индексе, так и в новом (и вполне возможно редактировать, если все они равны), так что вам не нужно копировать, вставлять ее в.

Итак, вы получите один _form.html.erb, который включает в себя форму, а в new и index у вас будет <%= render('form') %>

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