activeadmin, has_many e ckeditor
-
27-10-2019 - |
Domanda
Sto ponendo la stessa domanda che ho posto qui nella bacheca dei problemi di activeadmin su GitHub: https://github.com/gregbell/active_admin/issues/645
Ciao,
Ho due problemi diversi.
1: adoro il modo in cui l'amministratore attivo gestisce has_many relazioni con un semplice DSL in questo modo:
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
La possibilità di aggiungere più link nella parte inferiore del modulo è eccezionale.
Tuttavia, ho utilizzato un wyiswyg che non riesco a far funzionare in questo formato. L'ho usato / aggiunto con un parziale in questo modo:
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 %>
Tuttavia, nel mio parziale, non riesco a essere in grado di rendere la relazione has_many piacevolmente in questo modo:
f.inputs "ArtistLinks" do
f.has_many :artist_links do |j|
j.inputs :title, :url
end
end
Potresti spiegarmi come ottenere il mio wysiwyg che utilizza un form helper cktext_area_tag nella mia risorsa di amministrazione o spiegarmi come ottenere quel bel has_many nella mia vista parziale?
Grazie mille!
Soluzione
Il motivo per cui has_many
non funziona in partial è perché Active Admin ti dice di utilizzare semantic_form_for
quando scrivi il tuo partial.Active Admin estende Formtastic che utilizza per generare moduli.Lo fa creando il proprio generatore di moduli che estende il generatore di Formtastic e aggiunge, tra gli altri, il metodo has_many
.Quindi, se vuoi usarlo all'interno dei partials, devi usare il generatore di moduli Active Admin.Per farlo, usa active_admin_form_for
invece di semantic_form_for
.
Se hai problemi con active_admin_form_for
, dai un'occhiata a il mio ramo che dovrebbe risolvere la maggior parte dei problemi (è ancora beta, ma sto lavorando per inserirlo in Active Admin core)