В модели у меня есть:
before_destroy :ensure_not_referenced_by_any_shopping_cart_item
и
def ensure_not_referenced_by_any_shopping_cart_item
unless shopping_cart_items.empty?
errors.add(:base, "This item can't be deleted because it is present in a shopping cart")
false
end
end
Когда товар присутствует в корзине, он не уничтожается (что хорошо), и я вижу ошибку, если регистрирую его в действии.
def destroy
@product = Beverage.find(params[:id])
@product.destroy
logger.debug "--- error: #{@product.errors.inspect}"
respond_to do |format|
format.html { redirect_to beverages_url }
format.json { head :ok }
end
end
.. но переменная экземпляра, для которой было установлено сообщение об ошибке, отменяется, когда происходит redirect_to
, поэтому пользователь никогда не видит его.
Как сохранить сообщение об ошибке до следующего действия, чтобы его можно было увидеть в виде?
Спасибо!