【发布时间】:2012-03-14 07:04:58
【问题描述】:
在我的模型中:
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发生时,设置错误消息的实例变量被放弃,所以用户永远看不到它。
应该如何将错误消息保留到下一个操作,以便它可以显示在其视图中?
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 error-handling destroy