Rails 5: параметр отсутствует и не отображается для редактирования или несохраненного обновления или недопустимых параметров

Когда мы делаем git reset --hard, и все локальные неуправляемые изменения удаляются. Чтобы восстановить изменения - в IDE щелкните файл, сравните файл с локальной историей, в которой будут перечислены изменения в соответствии с датой, и мы сможем восстановить данные. Ваш день сохранен!

0
задан yaycake 5 March 2019 в 10:15
поделиться

3 ответа

Вы не должны обновлять в действии редактирования, это действие только для отображения формы. Удалите строку

@product.update(product_parameters)

из действия редактирования.

product_parameters должно быть с обязательной деталью для корректного обновления продукта

0
ответ дан Vasilisa 5 March 2019 в 10:15
поделиться

Удалить продукт обновления со страницы редактирования.

def edit
    @message = Message.new
    @message.build_company
    @categories = Category.all
end

Метод product_parameters должен быть.

def product_parameters
  params.require(:product).permit(:id, :name, :description, :picture, 
                                  :product_spec_id)
  #params.require(:product).permit! for permitting all attributes. 
end

Вы получаете эту ошибку, потому что вы пытаетесь обновить метод редактирования, который недопустим. В методе редактирования, как вы можете получить разрешенные параметры? если не передано никаких параметров.

0
ответ дан Vishal 5 March 2019 в 10:15
поделиться

Каждое действие само по себе является шаблоном, если оно не отображается в другом шаблоне.

Итак, products#edit => products/edit.html.erb

В edit.html.erb содержатся предварительно заполненные данные, точно поступающие из действия products_controller's edit -

после отправки правки данные формы будут отправлены действию update и обновят данные о действии products#update.

Таким образом, обновление происходит во время действия обновления, а не действия редактирования, т.е.

  def edit
    @message = Message.new
    @message.build_company
    @categories = Category.all
    #@product.update(product_parameters)
  end
0
ответ дан Gabbar 5 March 2019 в 10:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: