在rails中保存失败时返回导航



当在保存中出现问题时,我现在做以下操作,但感觉有点不对。

  if @store.update_attributes(params[:store])
    redirect_to admin_stores_path, notice: "Updated ..."
  else
    flash[:alert] = "Error"
    render action: 'edit'
  end  

使用浏览器的导航功能和redirect_back或其他东西会更好吗?我甚至不记得我从哪里复制了上面的代码,但它确实有时会产生一些奇怪的结果。

谁能告诉我处理保存失败的最好方法?导航明智吗?

使用render而不是redirect的原因很简单:

  • 您保留对象变量,这样用户就不必在输入错误时重新输入所有内容。

  • 错误被存储在对象本身中,所以你需要它来显示它们

通常当你编写控制器动作时,你会处理两种情况:成功和失败。如果发生错误,您将呈现相同的操作以显示验证错误,如果操作成功,您将redirect_to somewere。这是一种常见的做法,你甚至可以在不同的Rails书籍中找到这样的"模式"。关于redirect_to:back,我不喜欢使用它,因为它会带来很多麻烦:)

这是在rails中处理表单提交最常用的方式。当对象被保存时,你希望用户重定向其他页面,主要是显示页面。

最重要的是渲染动作,当你说渲染动作时你实际上想要渲染那个动作的视图。该视图有form_for和error_message_for,它们呈现表单与预填充的输入值和对象错误发生在保存它。

相关内容

  • 没有找到相关文章

最新更新