Установка различных настроек для моделей с заданным уровнем - PullRequest
0 голосов
/ 13 января 2020

В приложении rails какой способ установить различные значения конфигурации для модели devise? Допустим, у нас есть 2 модели Admin & User. Задание значений конфигурации в devise.rb будет применяться во всех моделях. Как я могу установить другую конфигурацию для одной из моделей? Я пробовал вот так

class Admin < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :validatable
  self.allow_unconfirmed_access_for =0.days
end

но получаю ошибку can't modify frozen class Как мне это исправить.

Спасибо!

Ответы [ 2 ]

1 голос
/ 13 января 2020

Нашел существующий пост StackOverflow о вашей проблеме здесь . Очевидно, вы можете переопределить метод confirmation_required? в модели Admin и вернуть false, чтобы пропустить шаги подтверждения для администратора. Обратите внимание, что он также пропустит отправку регистрационного письма на Admin.

ОБНОВЛЕНИЕ:

self.allow_unconfirmed_access_for = ... или Admin.allow_unconfirmed_access_for = ... работает, но для старых версий устройства.

Для последних версий это Devise.allow_unconfirmed_access_for =... (думаю, это то, что вы ищете)

0 голосов
/ 13 января 2020

Сделать Admin наследником класса User. Тогда уже разграничить права доступа для пользователя и для администратора

...