activeadmin, has_many и ckeditor - PullRequest
       9

activeadmin, has_many и ckeditor

3 голосов
/ 20 октября 2011

Я поднимаю тот же вопрос, который задавал здесь, на доске вопросов activeadmin на github: https://github.com/gregbell/active_admin/issues/645

Привет,

У меня две разные проблемы.

1: Мне нравится, как активный администратор обрабатывает отношения has_many с помощью простого 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 Ответ

6 голосов
/ 20 октября 2011

Причина, по которой has_many не работает в партиалах, заключается в том, что Active Admin говорит вам использовать semantic_form_for при написании вашего партиала.Active Admin расширяет Formtastic , который он использует для создания форм.Это достигается созданием собственного компоновщика форм, который расширяет компоновщик Formtastic и добавляет, среди прочего, метод has_many.Поэтому, если вы хотите использовать это внутри партиалов, вы должны использовать построитель форм Active Admin.Для этого используйте active_admin_form_for вместо semantic_form_for.

Если у вас возникли проблемы с использованием active_admin_form_for, взгляните на моя ветвь , которая должна устранить большинство проблем (это все ещебета - но я работаю над тем, чтобы загрузить его в ядро ​​Active Admin)

...