以 Post 为例,假设 Post 有 2 个属性,这两个属性都有验证。在编辑帖子时,假设我更改了 2 个属性,但其中一个属性验证失败,导致页面重新加载。在我看来,当页面重新加载时,以前保存的帖子属性版本会显示在表单中,而不是我刚刚输入的属性,尽管我刚刚输入的属性在 params.xml 中。
这将在典型的创建操作中处理,因为 post 实例变量声明如下所示:
@post = Post.new(params[:post])
但是,在更新操作中,post 实例变量如下所示:
@post = Post.find(params[:id])
因此,输入到表单中的更改并传递给参数不会在表单上重新呈现。我是否正确地描述了这一点,如果是这样,有没有办法在验证失败时让更改与表单一起呈现?或者,也许只有那些没有通过验证的更改?