2011-02-26 102 views
0

我在我的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

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

所有这些解决方案都非常黑客,不推荐使用。如果我是你,我会重新思考事情的方式。

+0

欢迎来到我的整个应用程序。谢谢。 –