Je travaille sur la création d'une application avec l'autorisation basée sur les rôles. Donc, j'ai créé une migration pour concevoir des utilisateurs " Et j'ai le bloc de code suivant dans mon contrôleur d'applications pour permettre le nouveau paramètre (rôle) .Mais encore quand je tente de vous inscrire en tant que nouvel utilisateur.J'obtiens l'erreur que le rôle de paramètre est non autorisé.S'il vous plaît m'aider à résoudre ce problème.Comment autoriser un nouveau paramètre dans les rails (concevoir) lors de l'implémentation de l'autorisation basée sur les rôles
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
C'est ce que j'ai dans mon modèle utilisateur
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
migration est comme suit
class AddRoleToUsers < ActiveRecord::Migration[5.0]
def change
add_column :users, :role, :string
end
end
S'il vous plaît me aider à résoudre ce issue.Thank vous.
Possible duplication de [Ajout de paramètres personnalisés pour concevoir l'enregistrement - paramètres non autorisés] (https://stackoverflow.com/questions/42572124/adding-custom-parameters-to-devise-registration-unpermitted-parameters) – Gerry
Possible duplicate of [Ajout d'un nouveau champ provoque une erreur] (https://stackoverflow.com/questions/43307494/adding-a-new-field-causes-an-error) –