如何配置rails_admin将整数输入字段更改为选择字段?

时间:2013-11-22 19:01:01

标签: ruby-on-rails forms configuration ruby-on-rails-4 rails-admin

我正在使用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] } %>

2 个答案:

答案 0 :(得分:2)

您可以在模型中创建一个返回User :: ROLES

的role_type_enum方法

https://github.com/sferik/rails_admin/wiki/Enumeration

答案 1 :(得分:0)

我知道这有点晚了,但是我今天遇到了这个问题,找到了解决方案! 如果有人偶然发现此问题:通过在rails_admin初始化程序中将field: you_column_name do更改为configure: your_column_name do,它仍应显示所有其他字段并仅更改指定的字段。

感谢文档:https://github.com/sferik/rails_admin/wiki/Fields