簡體   English   中英

使用Devise gem將其他屬性保存到用戶模型

[英]Saving other attributes to User model with Devise gem

我通過Devise gem創建了一個User模型,該模型在注冊時允許使用電子郵件,first_name和密碼。

 def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) << :first_name
 end

我想將其他屬性(例如last_name,city等)保存到User模型。 我已經運行了遷移,並在架構中看到了這些屬性。

但是,當我在用戶/編輯頁面上並嘗試保存時,新屬性無法保存。

我已經運行了命令來編輯設備控制器,但是很困惑。

rails generate devise:controllers users

為了在編輯/更新期間將其他屬性接受到User模型中,我是否仍然需要創建UsersController <ApplicationController?

然后我可以在嘗試更新時允許所有

def user_params
  params.require(:user).permit!
end

謝謝

嘗試這個:

class ApplicationController < ActionController::Base
  protect_from_forgery
  before_filter :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:user) << :first_name
  end
end

將以下過濾器添加到應用程序控制器:

before_action :configure_permitted_parameters, if: :devise_controller?

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) { |u| u.permit( :first_name, :email, :password, :password_confirmation) }
  end

這是用於注冊。 要更新用戶信息,請在configure_permitted_pa​​rameters過濾器中添加以下代碼行。

devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:first_name, :email, :password, :password_confirmation, :current_password) }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM