使用单独的表来定制用户信息w / rails 3和devise

时间:2013-10-14 22:14:05

标签: ruby-on-rails devise

问候语,

我一直在努力为我的应用程序定制我的设计注册表单,并且尝试理清Devise如何处理事情有点痛苦。我的表单是自定义的,但我的新字段中的属性未保存到数据库中。我看了类似这样的解决方案:http://blog.12spokes.com/web-design-development/adding-custom-fields-to-your-devise-user-model-in-rails-4/(是的,它适用于轨道4)但是....它感觉不是最干净的方法。我想知道现在是否有更有效的方法。您是否建议将与Devise身份验证无关的其他用户信息移动到新表中?如果是这样,我是否可以在Devise注册表单中放置一些嵌套元素的字段,而无需完成上述解决方案中的所有业务。提前谢谢!

1 个答案:

答案 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