activeadmin,has_many和ckeditor

时间:2011-10-20 10:13:51

标签: ruby-on-rails ckeditor activeadmin

我提出了我在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

/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

你能解释一下如何让我的wysiwyg使用表单助手cktext_area_tag到我的管理资源中,或者向我解释如何将好看的has_many放到我的视图中吗?

非常感谢!

1 个答案:

答案 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核心)