Константа в качестве раскрывающегося поля с использованием rails и rails_admin

Я новичок в ruby ​​и rails, и я пытаюсь сделать так, чтобы доступные роли отображались в раскрывающемся списке (это работало, когда я делал это вручную, однако я недавно обнаружил rails_admin), я прочитал много об этом, (у меня нет модели или контроллера ролей, так как роли никогда не изменятся и один пользователь может иметь только одну роль).

Примечание: я также установил гемы Devise и CanCan.

Итак, у меня есть постоянная РОЛЬ в моей модели user.rb, в которой хранятся роли, и мне бы хотелось, чтобы при создании или редактировании пользователя с помощью rails_admin, роли вместо простого поля ввода, отображался раскрывающийся список, заполненный эта константа называется РОЛЕС.

Это то, что я до сих пор:

class User < ActiveRecord::Base
  ROLES = %w(Admininistrator C1 D1 M1 M2).freeze
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable


  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me, :role

  #Tried this, no luck
 def role_enum
   [['Administrator'],['C1'],['D1'], ['M1'], ['M2']]
 end
 #And this, also no luck
 def ROLES_enum
   [['Administrator'],['C1'],['D1'], ['M1'], ['M2']]
 end
end

А также попытался раскомментировать это в файле rails_admin.rb

config.model 'User' do
   configure :role, :string 
end

Не повезло, как я уже сказал, я новичок как в Ruby, так и в Rails, но у меня был некоторый опыт работы с MVC и PHP-фреймворком Symfony, но это для меня совершенно новое. Я оценил бы любую помощь, которую я мог получить.

1 ответ

Решение

Попробуй это:

def role_enum
  ['Administrator','C1','D1','M1', 'M2']
end
Другие вопросы по тегам