Я новичок в RoR, и теперь я путаюсь с обновлением данных в базах данных.И я недавно изучал RoR, если вопрос неясен, пожалуйста, дайте мне знать.
Предположим, я создал таблицу "книга" с 3 столбцами: "имя", "цена" и "автор".
При реализации обновления действия в рельсах я сделаю следующее:
def update
@book = Book.find(params[:id])
if @book.update({'name': 'Ruby tutorial'})
redirect_to @book
else
render 'edit'
end
end
Это обновит запись в базе данных на
if @article.update({'name': 'Ruby tutorial'})
, чтобы протестировать некоторыеВ случае сбоя я специально изменил столбец базы данных «name» на «nane», подумал, что оператор if @ article.update завершится ошибкой из-за неправильного имени поля таблицы и код перейдет в блок else,Потому что я подумал, что этот оператор предназначен для проверки, успешно ли rails сохраняет запись в базе данных.
Однако мой код выдает исключение из-за неправильного имени поля вместо перехода в блок else.
Я запутался в этом поведении, какие ситуации вызовут , если @ article.update (params) завершится неудачно и перейдет в блок else?
Является ли if @ article.update(params) только для проверки данных формы?т. е. проверка правильности хеш-ключа, отправленного из формы, например, для стороны базы данных (имя поля или ошибка соединения с базой данных), не является делом этого оператора, поэтому он выдаст исключение.
Большое спасибо.