3

我在 github 上的 activeadmin 问题板上提出了同样的问题: https ://github.com/gregbell/active_admin/issues/645

你好,

我有两个不同的问题。

1:我喜欢活动管理员使用简单的 DSL 处理 has_many 关系的方式,如下所示:

 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

在表单底部添加更多链接的能力很棒。

但是,我一直在使用所见即所得,我似乎无法以这种格式工作。我一直在使用/添加它,如下所示:

  ActiveAdmin.register NewsItem do
    form :partial => "/news_items/form"
  end

/app/views/news_item/_form.html.erb

 <%= 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

您能否向我解释如何将我的所见即所得(使用表单助手 cktext_area_tag)放入我的管理资源中,或者向我解释如何将漂亮的 has_many 放入我的视图部分?

非常感谢!

4

1 回答 1

6

has_many不能在 partials 中工作的原因是 Active Admin 告诉您semantic_form_for在编写 partials 时使用。Active Admin 扩展了用于生成表单的Formtastic 。它通过创建自己的表单构建器来实现这一点,该构建器扩展了 Formtastic 构建器并添加了该has_many方法等。因此,如果您想在部分内部使用它,则必须使用 Active Admin 表单构建器。要做到这一点,请使用active_admin_form_for而不是semantic_form_for.

如果您在使用时遇到问题active_admin_form_for,请查看我的分支,它应该可以解决大部分问题(它仍然是测试版 - 但我正在努力将其纳入 Active Admin 核心)

于 2011-10-20T10:47:28.470 回答