问候语,
我一直在努力为我的应用程序定制我的设计注册表单,并且尝试理清Devise如何处理事情有点痛苦。我的表单是自定义的,但我的新字段中的属性未保存到数据库中。我看了类似这样的解决方案:http://blog.12spokes.com/web-design-development/adding-custom-fields-to-your-devise-user-model-in-rails-4/(是的,它适用于轨道4)但是....它感觉不是最干净的方法。我想知道现在是否有更有效的方法。您是否建议将与Devise身份验证无关的其他用户信息移动到新表中?如果是这样,我是否可以在Devise注册表单中放置一些嵌套元素的字段,而无需完成上述解决方案中的所有业务。提前谢谢!
答案 0 :(得分:1)
尝试使用devise_parameter_sanitizer
:
<强> application_controller.rb 强>
class ApplicationController < ActionController::Base
before_filter :configure_permitted_parameters, if: :devise_controller?
private
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:additional_field1, :additional_field2, :email, :password, :password_confirmation) }
end
end
然后在您的User
模型上,您只需添加验证:
<强> user.rb 强>
class User < ActiveRecord::Base
validates :additional_field1, presence: true
validates :additional_field2, uniqueness: true
end