Я работаю над созданием приложения с авторизацией на основе ролей. Итак, я создал миграцию для разработки пользователей, чтобы добавить новый столбец «роль». И у меня есть следующий блок кода в моем контроллере приложений, чтобы разрешить новый параметр (роль ). Но все же, когда я пытаюсь зарегистрироваться как новый пользователь, я получаю сообщение об ошибке, что роль параметра не разрешена. Пожалуйста, помогите мне решить эту проблему.
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
Пожалуйста, помогите мне решить эту проблему. Спасибо.