ruby-on-rails - 提交失败后不会重新填充设计(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 时,它们只是被擦除,如上所述。再次感谢。
解决方案
在#create
注册控制器中的方法中,您需要@user = User.new(...)
then render :new
。在您的视图(表单)中,您需要类似的东西form_for @user
(如果没有,也需要@user = User.new
在您#new
的控制器中的方法中)
推荐阅读
- javascript - 如何生成带有样式的 PDF 并将其上传到服务器(Jquery)
- django - 在 Django 中查询 easyaudit 中间件模型
- sql-server - 使用触发器维护日志以进行更新
- javascript - 将 Input 的值传递给 handleMethod
- c++ - 链接提取和插入,包围
- regex - 与正则表达式查询相关
- reactjs - 如何将函数转换为 es6 箭头函数
- ssl - dotnet core 3.0 SSL 在调试模式下工作,但不适用于 `dotnet run`
- bash - 使用 jq 从 json 中获取数组
- php - 从 xlxs 文件插入 10000 行时,浏览器抛出错误“糟糕,出了点问题” - laravel