Я определил модель пользователя, в которой есть классическая роль
class User
enum role:[:user, :poweruser, :admin, :superadmin]
. Сейчас я использую RailsAdmin для управления полями пользователя в файле rails_admin.rb .Сначала я управлял атрибутом роли следующим образом:
edit do
field :email do
required true
end
field :password
field :password_confirmation
field :role
...
Все было хорошо.Отображается текущее значение (здесь poweruser ), я автоматически получаю комбо от RailsAdmin с 4 указанными значениями.Отлично!
Теперь я хочу динамически управлять списком ролей: мне нужно ограничить список ролей, связанных с текущим зарегистрированным пользователем.Поэтому я использую функцию : enum RailsAdmin следующим образом:
field :role, :enum do
required true
enum do
if bindings[:view]._current_user.superadmin?
{user:0, poweruser:1,admin:2,superadmin:3}
elsif bindings[:view]._current_user.admin?
{user:0, poweruser:1,admin:2}
else
{user:0}
end
end
end
Это работает, список корректно ограничен в соответствии с текущей записанной ролью пользователя.
Однако мне бы хотелось, чтобы начальное значение роли было установлено правильно, это значение вообще не отображается: вместо начального значения poweruser , отображается слово Search ( Chercher по-французски).Как я мог решить эту проблему?
Спасибо за любую помощь.