Ruby on Rails注册表单提交异常求助:参数未授权问题
问题解决:注册表单提交失败(Unpermitted parameter: :password)
核心问题:参数拼写错误
终端提示的Unpermitted parameter: :password是因为你的registration_controller.rb里的强参数方法存在拼写错误:
def params_account params.require(:account).permit(:mail ,:passwor ,:password_confirmation) end
这里的:passwor少了最后一个字母d,无法匹配表单提交的:password参数。修正后的代码:
def params_account params.require(:account).permit(:mail ,:password ,:password_confirmation) end
其他可选优化(非核心问题)
- 表单中的Bootstrap类名错误:
form_control应为form-control(短横线分隔),否则样式可能无法正常生效:<%= form.text_field :mail ,class:"form-control" ,placeholder:"rahma@gmail.com"%> <%= form.password_field :password ,class:"form-control" ,placeholder:"password"%> <%= form.password_field :password_confirmation ,class:"form-control" ,placeholder:"confirm your password"%> - 标签拼写错误:
Confirme_password应为Confirm_password,保持拼写一致性:<%= form.label :Confirm_password %>
验证步骤
- 重启Rails服务器确保代码修改生效
- 重新提交表单,此时
password参数会被正确允许,账户可正常保存
内容的提问来源于stack exchange,提问作者Rahma Begag
相关产品推荐
相关产品推荐

