Ich bin auf der Suche nach einer Möglichkeit zum Bearbeiten/Hinzufügen von Stichwörtern zu einem Artikel, in ActiveAdmin inline.Bearbeiten von Viele-zu-viele-Beziehungen in ActiveAdmin
I definiert haben eine einfache many-to-many-Setup:
class Area < ActiveRecord::Base
has_many :area_keywords
has_many :keywords, :through => :area_keywords
accepts_nested_attributes_for :keywords, :reject_if => :all_blank, :allow_destroy => true
end
class AreaKeyword < ActiveRecord::Base
belongs_to :area
belongs_to :keyword
end
class Keyword < ActiveRecord::Base
has_many :area_keywords
has_many :areas, :through => :area_keywords
end
Ich würde die Schlüsselwörter in en Gebiet Form hinzufügen, und zu bearbeiten, so dass diese I-Setup in Aciveadmin:
ActiveAdmin.register Area do
form do |f|
f.inputs "Area details" do
f.input :title
f.input :description
end
f.has_many :keywords do |k|
if k.object.nil?
k.input :word, :label => 'Keyword'
else
k.input :word, :label => k.object.word
k.input :_destroy, :as => :boolean, :label => "delete"
end
end
end
end
Dies funktioniert wie erwartet.
Aber wenn ich das gleiche Schlüsselwort zu zwei verschiedenen Bereichen hinzufügen, wird das Schlüsselwort nur zweimal erstellt.
Wenn ich ein neues Schlüsselwort (im Bereich Formular) eingeben möchte, möchte ich automatisch eine Beziehung zu einem vorhandenen Schlüsselwort erstellen oder ein neues Schlüsselwort erstellen, falls es nicht existiert. Was wäre der beste Weg, um darüber zu gehen?
Sehr schöne Lösung.Danke für das Teilen! Ich habe beide Edelsteine benutzt, nachdem ich diese Frage gepostet habe, aber es macht Sinn, sie so zusammen zu verwenden. –
gute Lösung, aber ich möchte, dass einige Standardoptionen ausgewählt werden sollten. Sagen wir während der Aktualisierung, dass meine aktuellen Kinder standardmäßig ausgewählt werden sollen. Wie kann ich das mit select2 machen? –
Ich habe es getan mit: selected => IDS –