Делать слепое rescue
и затем отбрасывать исключение - это не способ решения проблем.Там может быть что-то не так, и вы игнорируете это, что является чрезвычайно опасной практикой.
Я думаю, что частью проблемы здесь является то, что вы потенциально уничтожаете запись, а затем изменяете ее после ее уничтожения., который является недопустимой операцией.Возможно, вы захотите указать это по-другому:
if @line_item.quantity > 0
@line_item.update_attributes(params[:line_item])
else
@line_item.destroy
end
Если у вас все еще возникают ошибки «замороженного хеша», вам, вероятно, нужно выяснить, что именно заморожено и почему, вместо того, чтобы просто игнорировать ошибку и продолжатькак будто ничего не случилось.
Вы можете использовать update_attributes!
и спасти от ActiveRecord :: RecordInvalid, если есть что-то, что помешает этому сохраниться должным образом.Прямо сейчас вы игнорируете результат update_attributes
, успешно или нет.