我正在使用rails_admin
devise
。我有一个普通的User
模型(具有典型的devise
属性)以及一个名为integer
的其他role_type
类型属性。当我在浏览器中查看http://0.0.0.0:5000/admin/user/1/edit
时,我会看到十个devise
属性,以及我的Role type
(虽然它是type="number"
input
字段,但我想要它成为select
下拉菜单。我已经做了一些搜索,并添加了rails_admin.rb
的配置以及相应的部分,虽然我得到了我想要的下拉菜单,这是我获得整个用户编辑视图的唯一选择
我想配置rails_admin
显示:role_type
字段的方式,同时(显然)也可以编辑其余User
字段。
分贝/迁移/ 20131119000715_add_role_type_to_user.rb
class AddRoleTypeToUser < ActiveRecord::Migration
def change
add_column :users, :role_type, :integer, null: false, default: 0
end
end
应用/模型/ user.rb
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
ROLES = ['default', 'admin', 'moderator']
end
的Gemfile
gem 'rails_admin', github: 'sferik/rails_admin'
配置/初始化/ rails_admin.rb
RailsAdmin.config do |config|
config.model User do
edit do
field :role_type do
partial 'form'
end
end
end
end
应用/视图/ rails_admin /主/ _form.html.erb
<%= form.select :role_type, User::ROLES.each_with_index.map { |e, i| [e, i] } %>
答案 0 :(得分:2)
您可以在模型中创建一个返回User :: ROLES
的role_type_enum方法答案 1 :(得分:0)
我知道这有点晚了,但是我今天遇到了这个问题,找到了解决方案!
如果有人偶然发现此问题:通过在rails_admin初始化程序中将field: you_column_name do
更改为configure: your_column_name do
,它仍应显示所有其他字段并仅更改指定的字段。