activeadmin, has_many und ckeditor
-
27-10-2019 - |
Frage
Ich stelle die gleiche Frage, die ich hier im Activeadmin's Issues Board auf Github gestellt habe: https://github.com/gregbell/active_admin/issues/645
Hallo,
Ich habe zwei verschiedene Probleme.
1: Ich mag die Art und Weise, wie der aktive Administrator has_many Beziehungen mit einem einfachen DSL wie folgt behandelt:
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
Die Möglichkeit, am Ende des Formulars weitere Links hinzuzufügen, ist großartig.
Ich habe jedoch ein Wyiswyg verwendet, das in diesem Format anscheinend nicht funktioniert. Ich habe es mit einem Teil wie dem folgenden verwendet / hinzugefügt:
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 %>
<%= 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 %>
Allerdings In meinem Teil kann ich anscheinend nicht in der Lage sein, die has_many-Beziehung so zu gestalten:
f.inputs "ArtistLinks" do
f.has_many :artist_links do |j|
j.inputs :title, :url
end
end
Können Sie mir entweder erklären, wie ich mein wysiwyg, das einen Formularhelfer cktext_area_tag verwendet, in meine Administratorressource bekomme, oder mir erklären, wie ich dieses nette has_many teilweise in meine Ansicht bekomme?
Vielen Dank!
Lösung
Der Grund, warum has_many
in Partials nicht funktioniert, liegt darin, dass Active Admin Sie auffordert, semantic_form_for
beim Schreiben Ihres Partials zu verwenden.Active Admin erweitert Formtastic , mit dem Formulare generiert werden.Dazu wird ein eigener Form Builder erstellt, der den Formtastic Builder erweitert und unter anderem die has_many
-Methode hinzufügt.Wenn Sie dies also in Partials verwenden möchten, müssen Sie den Active Admin Form Builder verwenden.Verwenden Sie dazu active_admin_form_for
anstelle von semantic_form_for
.
Wenn Sie Probleme mit der Verwendung von active_admin_form_for
haben, schauen Sie sich meinen Zweig an, der die meisten Probleme beheben sollte (Es ist noch Beta - aber ich arbeite daran, es in den Active Admin-Kern zu bringen.