首页 > 解决方案 > 提交失败后不会重新填充设计(rails)中的附加注册字段

问题描述

我在 rails 中使用 devise 作为我的用户系统。

例如,我在注册时有几个额外的字段 -:first_name以及电子邮件和密码。

devise_parameter_sanitizer在应用程序控制器中使用并允许:first_name保存。这一切正常,用户可以注册所有额外的字段。

但是,当表单无效(例如密码和密码确认不匹配)时,我遇到了一个问题,用户提交的表单填写了名字字段。当返回无效表单时,名字字段数据已丢失.

我如何做到这一点,以便设计在无效提交后填写这些额外的注册字段,否则用户必须重新输入详细信息。

谢谢。

编辑 - 控制器全部由设计负责。表格是设计附带的表格,外加一些额外的字段。我已将此添加到应用程序控制器作为之前的操作以保存额外的参数:

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up) do |u|
      u.permit(
        :email, :password, :first_name
      )
    end
  end

该视图与设计视图相同,但具有额外的输入。额外的字段保存得很好,当返回无效的 for 时,它们只是被擦除,如上所述。再次感谢。

标签: ruby-on-railsrubydevise

解决方案


#create注册控制器中的方法中,您需要@user = User.new(...)then render :new。在您的视图(表单)中,您需要类似的东西form_for @user(如果没有,也需要@user = User.new在您#new的控制器中的方法中)


推荐阅读