ActiveAdmin通用表单部分

时间:2017-11-01 12:55:38

标签: ruby activeadmin

我有以下表格上传PDF:

  f.inputs 'PDF' do
    f.has_many :pdfs, allow_destroy: true do |pdf_f|
      pdf_f.semantic_errors
      pdf_f.input :name
      pdf_f.input :description
      pdf_f.input :enabled
      pdf_f.input :link, label: 'file', as: :file
    end
  end

一种显示文件的方法:

   li do
      div "name: #{pdf.name}"
      div "filename: #{pdf.link.path.split('/').last}"
      div raw "description: <br> #{pdf.description}"
      div "enabled: #{pdf.enabled ? "yes" : "no"}"
    end

Pdf是一个多态对象,因此可以出现在几个模型上。

如何为每个分片创建一个通用分片,然后可以在ActiveAdmin中重复使用,这样我就不必每次都重新创建它们了?

请记住第二个我希望通过将其作为collection:

传递来迭代它的第二个

1 个答案:

答案 0 :(得分:1)

表单答案是将表单放在部分位于:

app/views/active_admin/base/_pdf_form.erb

然后像这样呈现:

  render partial: 'pdf_form', locals: {f: f}

对于显示区域,您应将部分放在:

app/views/active_admin/base/_pdf.erb

然后像这样呈现:

render partial: 'pdf', collection: event.pdfs

部分名称必须在引号中,否则铁路不会找到它active_admin/base