我正在使用 gem Responders,但我无法显示我使用erros.add(:base, 'Error message')
.
在我的控制器上,在 之前respond_with @app
,我调试了@app
对象并且它有错误@app.errors.any?
返回true
在我看来,当我检查flash
and@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=
。