7

使用 ActiveAdmin (0.5.1) 我想制作多种不同的形式来创建对象并将其保存到我的数据库中。我正在尝试通过使用来做到这一点ActiveAdmin.register_page,但是在尝试创建表单时遇到了麻烦。似乎在使用时register_page,您没有得到与调用相同的form方法。register这是代码:

ActiveAdmin.register_page "New Object" do
  content do
    para "Here you can create new objects!"
    para "This content will be replaced with links to the specialized forms"
  end
end

以及其中一种形式的代码:

ActiveAdmin.register_page "Type 1" do
  menu :label => "Type 1", :parent => "New Object"

  content do
    panel "Attributes" do
      form do |f|
        f.input :color
        f.input :size
    end
  end
end

但是,此表单不会以任何可行的方式呈现。此外f.inputs,您可以在示例中看到的许多其他方法(如this)都不起作用。是否可以使用 制作功能齐全的表格ActiveAdmin#register_page

4

2 回答 2

4

要在非标准上下文中创建表单(即,不是资源寄存器),您需要使用指定semantic_form_for:urland:builder选项的 formtastic。

content do
  semantic_form_for MyObject.new, :url => admin_my_objects_url, :builder => ActiveAdmin::FormBuilder do |f|
    f.inputs "My Object" do
      f.input :color
      f.input :size
    end
    f.actions
  end
end

这将为您提供一个标有“我的对象”的面板,其中包含您的对象的表单,其下方有一个提交按钮。

于 2013-03-26T02:24:25.537 回答
2
ActiveAdmin.register_page "Families Placement" do
  menu label: "Populaire Familles"

  page_action :update, method: :post do
    Family.find(params['id']).update_attributes(id_1: params['id_1'], id_2: params['id_2'])
    redirect_to "/"
  end

  content do
    Family.all.order(id: :asc).each do |family|
        form action: "families_placement/update", method: :post do |f|
            columns do
          panel family.name do
            f.input :id, type: :hidden, value:  family.id, name: 'id'
            f.input :id_1, as: :select, collection: collect_posts, value: family.id_1, name: 'id_1'
            f.input :id_2, as: :select, collection: collect_posts, value: family.id_2, name: 'id_2'
            f.input :authenticity_token, type: :hidden, name: :authenticity_token, value: form_authenticity_token
            f.input :submit, type: :submit
          end
        end
      end
    end
  end
end

您在自定义 ActiveAdmin 页面中有一个工作表单的示例。添加很重要

f.input :authenticity_token, type: :hidden, name: :authenticity_token, value: form_authenticity_token

这是我找到所有信息的地方:https ://asafdav2.github.io/2016/adding-forms-to-activeadmin-custom-pages/

于 2018-12-07T13:56:50.557 回答