Константа в качестве раскрывающегося поля с использованием 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