点击帐户表单的“ 保存”按钮后,页面会呈现给编辑帐户本身,因为验证确实没有成功通过。我需要知道在执行验证操作后,表单将被重定向或呈现。
请帮忙。预先感谢
答案 0 :(得分:0)
通常更新方法如下。
def update
@article = Article.find(params[:id])
if @article.update(article_params)
redirect_to @article
else
render 'edit'
end
end
保存时,将调用update方法。选中此方法,如果@article成功更新,它将重定向到显示页面,否则将呈现编辑页面。
答案 1 :(得分:0)
一些简单的解决方案:
valid?
(如果成功保存,则返回true,否则返回false)尚不清楚您为什么需要此信息,我希望您已经显示了验证错误?简单表单将自动执行此操作(在字段上)。如果您自己进行操作,则可以遍历@<your-object>.errors.messages
答案 2 :(得分:0)
我想您要的是在编辑页面上时是否已执行更新操作。常规方法是检查@article对象上的错误:
<%- if @article.errors.blank? %>
No errors so hasn't been run through update action
<% else %>
Has been run through update and has some errors
<% end %>
或者,您可以在控制器中添加实例变量,然后在页面上检查该变量:
def update
@article = Article.find(params[:id])
@run_update = true
if @article.update(article_params)
redirect_to @article
else
render 'edit'
end
end
查看:
<%- if @run_update %>
Has been rendered
<% end %>
这是因为实例变量在重定向后不会持续存在