Как ограничить определенное значение в разработке зарегистрироваться? - PullRequest
0 голосов
/ 30 октября 2018

При регистрации я позволил еще один параметр: role.

class ApplicationController < ActionController::Base

  before_action :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:firstname, :lastname, :address, :phone1, :phone2, :business, :role])

Теперь я хотел бы отфильтровать пройденную роль. Если роль «пользователь» или «дилер», тогда роль устанавливается иначе, если роль «администратор», то роль не устанавливается. Как мне этого добиться?

Модель пользователя имеет свойство роли в виде строки. Причина, по которой не разрешена роль администратора, заключается в том, что администраторы создаются вручную. Пользователь с правами администратора не может быть создан через регистрационную форму пользователя. Я ценю любого гида. Спасибо!

1 Ответ

0 голосов
/ 30 октября 2018

Существует много способов реализовать проверку перед созданием новой записи в devise. Вы можете достичь своей цели, изменив вашу модель пользователя , как показано ниже ( Примечание. Эта проверка будет работать при добавлении нового пользователя из контроллера или консоли. )

class User < ApplicationRecord
    after_initialize :check_role, :if => :new_record?

    def check_role
        if self.role != 'user' && self.role != 'dealer'
            self.role = ''
        end
     end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...