我正在創建一個基於角色的授權的應用程序。因此,我創建了一個遷移程序來設計用戶添加一個新的列「角色「 而我的應用程序控制器中有以下代碼塊允許新參數(角色)。但仍然當我嘗試註冊爲新用戶時。我得到參數角色不允許的錯誤。請幫助我解決這個問題。如何在實現基於角色的授權時在rails(設計)中允許一個新參數
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up) { |u| u.permit( :email, :password, :password_confirmation, roles: []) }
end
end
這是我有我的用戶模型
class User < ApplicationRecord
belongs_to :role
# has_many :Product
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
ROLES = %i[admin manager customer]
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation, :role)
end
end
遷移是如下
class AddRoleToUsers < ActiveRecord::Migration[5.0]
def change
add_column :users, :role, :string
end
end
請幫我解決這個issue.Thank你。
[添加自定義參數以設計註冊 - 未經許可的參數](https://stackoverflow.com/questions/42572124/adding-custom-parameters-to-devise-registration-unpermitted-parameters) – Gerry
可能的重複[添加新字段導致錯誤](https://stackoverflow.com/questions/43307494/adding-a-new-field-causes-an-error) –