我提出了我在github上的activeadmin问题板上提出的同样问题: https://github.com/gregbell/active_admin/issues/645
您好,
我有两个不同的问题。
1:我喜欢主动管理员处理与一个简单的DSL有如此关系的方式:
ActiveAdmin.register Artist do
form do |f|
f.inputs do
f.input :name
f.input :description
end
f.inputs "ArtistLinks" do
f.has_many :artist_links do |j|
j.inputs :title, :url
end
end
f.buttons
end
end
在表单底部添加更多链接的功能非常棒。
然而,我一直在使用wyiswyg,我似乎无法以这种格式工作。我一直在使用/添加部分像这样:
ActiveAdmin.register NewsItem do
form :partial => "/news_items/form"
end
<%= javascript_include_tag "/javascripts/ckeditor/ckeditor.js" %>
<%= semantic_form_for [:admin, @news_item], :multipart => true do |f| %>
<%= f.inputs :title, :photo, :excerpt %>
<%= cktext_area_tag("news_item[content]", @news_item.content) %>
<%= f.submit %>
<% end %>
然而, 在我的部分,我似乎无法像这样很好地建立has_many关系:
f.inputs "ArtistLinks" do
f.has_many :artist_links do |j|
j.inputs :title, :url
end
end
你能解释一下如何让我的wysiwyg使用表单助手cktext_area_tag到我的管理资源中,或者向我解释如何将好看的has_many放到我的视图中吗?
非常感谢!
答案 0 :(得分:6)
has_many
在partials中不起作用的原因是Active Admin会在编写部分时告诉您使用semantic_form_for
。 Active Admin扩展了Formtastic,用于生成表单。它通过创建自己的表单构建器来扩展Formtastic构建器并添加has_many
方法。因此,如果要使用内部部分,则必须使用“活动管理”表单构建器。为此,请使用active_admin_form_for
代替semantic_form_for
。
如果您在使用active_admin_form_for
时遇到问题,请查看my branch哪些问题可以解决大多数问题(它仍然是测试版 - 但我正在努力将其纳入Active Admin核心)