如何在重新加载后保留验证错误消息?

时间:2011-02-26 12:23:22

标签: ruby-on-rails-3 validation activerecord reload

我在我的foo模型中运行了几个验证。以下是我处理创建和更新操作的方法:

if @foo.update_attributes(params[:foo])
  #party time   
else
  @foo.reload #here is the issue
  render :action => "new" #or edit
end

我必须重新加载属性,因为我使用默认的表单值来运行无关的javascript。问题是通过重新加载属性,我显然失去了@ foo.errors。有没有办法可以将它们传递给新的重载变量?我更喜欢使用javascript来防止糟糕的表单提交。谢谢!

1 个答案:

答案 0 :(得分:1)

重载方法显然不适用于此。您可以: 1.定义恢复值的方法 2.保存错误然后重新分配 3.将属性从新加载的实例合并到@foo。

所有这些解决方案都非常苛刻,不推荐使用。如果我是你,我会重新考虑事情的运作方式。