Rails — Проблемы с использованием Edit

#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])
  

требуется в методе редактирования.