我正在尝试将表单添加到资源的显示页面。表单工作正常,但只有在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
谢谢!
答案 0 :(得分:3)
panel
的替代方法是使用div
。
根本问题是混合Arbre和非Arbre组件;这些组件是panel
和semantic_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