显示页面上没有面板的ActiveAdmin表单

时间:2014-01-16 00:33:02

标签: ruby-on-rails ruby-on-rails-4 activeadmin

我正在尝试将表单添加到资源的显示页面。表单工作正常,但只有在panel声明中包装它才会显示,这会导致面板内的面板。

知道如何让表单显示而不将其包含在panel中吗?

这是我现在的代码:

show do |ad|
    ...

    panel "Foobar" do
      semantic_form_for [:admin, resource, resource.reactions.build], builder: ActiveAdmin::FormBuilder do |f|
        f.inputs "New Reaction" do
          f.input :title
          f.input :content
        end
        f.actions
      end
    end
end

谢谢!

1 个答案:

答案 0 :(得分:3)

panel的替代方法是使用div

根本问题是混合Arbre和非Arbre组件;这些组件是panelsemantic_form_for。这种更改有效,因为Arbre块中的最后一个返回值在它是String时包含在text_node中。在这种情况下,表单将作为字符串输出,然后在text_node中包装为div,从而呈现表单。有关详细信息,请参阅Arbre的Element source

show do |ad|
  div do # <- Note the div
    semantic_form_for [:admin, resource, resource.reactions.build], builder: ActiveAdmin::FormBuilder do |f|
      f.inputs "New Reaction" do
        f.input :title
        f.input :content
      end
      f.actions
    end
  end
end