2013-10-14 49 views
0

問候,使用一個單獨的表自定義用戶信息W /導軌3,並制定

我一直在努力讓我的色器件報名表格定製我的應用程序,它已經有點痛的努力理清Devise如何處理事物。我的表單是自定義的,但是我的新字段中的屬性沒有保存到數據庫中。我看着這樣的解決方案:http://blog.12spokes.com/web-design-development/adding-custom-fields-to-your-devise-user-model-in-rails-4/(是的,它是用於軌道4),但是......它不覺得像最乾淨的方式來做到這一點。我想知道現在是否有更有效的方法來做到這一點。您是否建議將與設計認證無關的其他用戶信息移動到新表中?如果是這樣,我可以在Devise註冊表單中放置一些嵌套元素的字段,而無需通過上述解決方案中的所有業務。提前致謝!

回答

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 
+0

哇,謝謝。完美工作。 – settheline