#ruby-on-rails #ruby-on-rails-3 #rails-models
#ruby-on-rails #ruby-on-rails-3 #rails-модели
Вопрос:
У меня возникли проблемы при попытке отредактировать модель. Я всегда получаю сообщение об ошибке
undefined method `model_name' for NilClass:Class
Я использую в представлении:
<%= form_for(@book) do |f| %>
и на контроллере:
def edit
@title = "Edit Book"
end
def update
@book = Book.find(params[:id])
if @book.update_attributes(params[:book])
flash[:success] = "Book Updated"
redirect_to @book
else
@title = "Edit Book"
render 'edit_book_path(@book)'
end
end
Ответ №1:
Вы должны инициализировать переменную @book в действии «редактировать». Как вы можете видеть из вашего представления:
<%= form_for(@book) do |f| %>
переменная @book используется для отображения формы. Таким образом:
@book = Book.find(params[:id])
требуется в методе редактирования.