[英]Custom user fields in Devise 3 under Rails 4
我正在使用Devise 3的候選版本,以便可以在Rails 4中使用它。在Rails 3.2中,我曾經能夠通過將字段添加到registration / edit.html來向我的User
模型添加自定義字段。 erb和registration / new.html.erb文件(運行正確的遷移后)。 然后,我只需將該字段添加到模型中的attr_accessible
字段列表中即可。
但是,在Rails 4中,沒有attr_accessible
列表,我不能簡單地在視圖中添加字段。 如何添加自定義用戶字段?
新增中
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :email) }
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :password_confirmation) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:username, :email, :password, :password_confirmation, :current_password) }
end
到applicationcontroller為我工作。
如果您想允許其他參數,可以使用簡單的before過濾器
ApplicationController:
class ApplicationController < ActionController::Base
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) << :username
end
end
您需要啟用Strong Parameters進行設計,而不是attr_accessible進行設計,這需要創建新的初始化程序,例如:
DeviseController.class_eval do
def resource_params
unless params[resource_name].blank?
params.require(resource_name).permit(:email, :password, :password_confirmation, :remember_me)
end
end
end
確保您從rails4分支(plataformatec / devise)中克隆了gem。 從模型中刪除attr_accesible
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.