ruby-on-rails - 如何在 session 或Flash中传递表单错误? [ rails 2.3.5]

标签 ruby-on-rails forms session rails-flash

我有一个表单的创建操作,该操作可能会生成错误(即缺少名字),然后重定向。

问题是,当重定向发生时,这些表单错误就会丢失。 我如何在 session 中传递这些表单错误以显示回原始表单(仍应填写以前的详细信息,如原始 error_messages 行为)?

谢谢!

<小时/>

代码:

def create
  @contact = Contact.new(params[:contact])
  if @contact.save
    flash[:notice] = "Sent."
  else
    flash[:notice] = "Error."
  end
end

最佳答案

Rails 中的约定是渲染原始操作的 View 而不是进行重定向。所以你的代码将如下所示:

def create
  @contact = Contact.new(params[:contact])
  if @contact.save
    flash[:notice] = 'Sent.'
    redirect_to @contact
  else
    flash.now[:notice] = 'Error.'
    render :new
  end
end

如果 new 操作需要进行任何其他设置,请将公共(public)代码提取到私有(private)方法中,并在 before_filter 中为两个 调用它>新建创建

关于ruby-on-rails - 如何在 session 或Flash中传递表单错误? [ rails 2.3.5],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2573350/

相关文章:

ruby-on-rails - 链接 .order 与 .where - #<Array :0x007f85760dcb10> 的未定义方法 `order'

ruby-on-rails - 使用 2 个不同的服务器将 Rails 应用程序与数据库分开?

html - 在 CSS 不起作用的情况下更改鼠标悬停的图像

javascript - 如何向数字字段添加最小和最大长度验证?

php - 将textarea内容保存到mysql然后在页面上正确显示

php - echo $_SESSION ["column"] 和 row ["column"] 有什么区别?

ruby-on-rails - 自定义助手的范围

php - 保留已选择的单选/选择选项的值

session - 无法通过键获取 gorilla session 。值

php - 为什么 PHP session_destroy() 不起作用?