【发布时间】:2013-10-28 17:39:40
【问题描述】:
我正在使用 gem Responders,但我无法显示我使用 erros.add(:base, 'Error message') 在我的模型上创建的错误。
在我的控制器上,在respond_with @app 之前,我调试了@app 对象,它有 错误@app.errors.any? 返回true
在我看来,当我检查 flash 和 @app 对象时,没有一个错误
应用控制器
# app_controllers.rb
def destroy
@app = current_company.apps.find(params[:id])
@app.destroy
respond_with @app
end
应用模型
# app.rb
before_destroy :destroy_on_riak
# ...
def destroy_on_riak
# SOME CODE HERE
rescue Exception => e
errors.add(:base, I18n.t("models.app.could_not_destroy", :message => e.message))
return false
end
应用视图
# apps.html.haml
-flash.each do |name, msg|
%div{:class => "flash #{name}"}
=content_tag :p, msg if msg.is_a?(String)
这是@app 对象之前 @app.destroy
"#<ActiveModel::Errors:0x00000004fa0510 @base=#<App id: 34, ...>, @messages={}>"
这是@app 对象之后 @app.destroy
"#<ActiveModel::Errors:0x00000004fa0510 @base=#<App id: 34, ...>, @messages={:base=>[\"Não foi possível excluir a aplicação: undefined method `get_or_new' for #<App:0x00000004f824c0>\"]}>"
为简单起见,我删除了 @base= 中的内容。
【问题讨论】:
标签: ruby-on-rails ruby responders