การสร้างฟิลด์ที่กำหนดเองสำหรับ rails_admin

ฉันกำลังพยายามสร้างฟิลด์ที่กำหนดเองสำหรับประเภทข้อมูล numrange ของ postgres ด้วยสคริปต์ ที่นี่ . เอ็นจิ้นที่สร้างขึ้น (ใช่ไหม) มีตัวช่วยแบบฟอร์มด้านล่าง แต่ฉันไม่พบเอกสารสำหรับวิธี form.send เลย มีใครช่วยชี้ให้ฉันดูเพื่อที่ฉันจะได้แก้ไขบางส่วนได้ไหม

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

สิ่งที่ฉันพยายามทำคือสร้างอินพุตสองตัวแล้วแยกวิเคราะห์เป็น Range ในคลาสประเภทฟิลด์ rails_admin




คำตอบ (1)


นี่คือวิธีที่ฉันสร้างฟิลด์ที่กำหนดเองเพื่อจัดการกับอาร์เรย์ นี่คือบทความที่มีประโยชน์ 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

จากนั้นฉันก็เพิ่มสิ่งนี้ลงใน rails_admin.rb ของฉัน

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