Membuat bidang khusus untuk Rails_admin

Saya mencoba membuat bidang khusus untuk tipe data numrange postgres dengan skrip di sini . Mesin yang dihasilkan (bukan?) berisi pembantu formulir di bawah ini, tetapi saya tidak dapat menemukan dokumentasi untuk metode form.send di mana pun. Adakah yang bisa mengarahkan saya agar saya dapat memodifikasinya sebagian?

= form.send field.view_helper, field.method_name, field._html_attributes

Apa yang saya coba lakukan adalah membuat dua input dan menguraikannya menjadi Range di kelas tipe bidang Rails_admin.


person harinsa    schedule 16.10.2015    source sumber


Jawaban (1)


Inilah cara saya membuat beberapa bidang khusus untuk menangani array. Berikut ini artikel bermanfaat https://github.com/sferik/rails_admin/issues/1218

class RailsAdminArray < RailsAdmin::Config::Fields::Base
  register_instance_option :formatted_value do
    value.join(',') if value
  end
end
class RailsAdminStringArray < RailsAdminArray
  RailsAdmin::Config::Fields::Types::register(:string_array, self)
  def parse_input(params)
    if params[name].is_a?(::String)
      params[name] = params[name].split(',').collect{|s| s.strip}
    end
  end
end
class RailsAdminIntArray < RailsAdminArray
  RailsAdmin::Config::Fields::Types::register(:int_array, self)
  def parse_input(params)
    if params[name].is_a?(::String)
      params[name] = params[name].delete(' ').split(',').collect{|x| x.to_i}
    end
  end
end

Lalu saya menambahkan ini ke Rails_admin.rb saya.

require Rails.root.join('lib', 'rails_admin', 'custom_fields.rb')
...
edit do
  field :tags, :string_array
end
person Dmitry Polyakovsky    schedule 15.01.2016