Ste*_*eve 1 ruby-on-rails ruby-on-rails-3
我有一个相当复杂的视图,有多种形式,对这些表单,分页和其他功能进行大量验证.验证失败时,我喜欢使用渲染,因为您可以更具体地了解表单中发生的错误.但是,当我使用渲染时,会出现不同的编译器错误,例如[]:Array"和"undefined model_name"的"未定义方法`total_pages'.这是我必须使用redirect_to的情况,还是可以以某种方式解决在呈现视图时出现的错误.谢谢你!
apn*_*ing 10
你应该从他们的角度来理解事物.
为什么render用而不是redirect:
使用时render,传递实例化的对象
这个新创建或更新的对象收到了一些参数
尝试保存对象时,会触发验证,如果不成功,则会向当前实例添加错误
所以你的内存中的对象包含验证错误.
但是当你使用重定向时,你会重新启动一个新的堆栈,它对内存中的前一个对象一无所知,没有任何魔法:
保存对象,您可以从数据库中获取持久化数据
或者如果没有保存,您可以获得之前存储在会话中的一些信息
要更接近地回答您的问题:在使用渲染之前,您必须实例化页面所需的所有对象.
如果缺少预期的实例变量,那么视图失败就是逻辑.
| 归档时间: |
|
| 查看次数: |
2597 次 |
| 最近记录: |