Szukam sposobu edytowania/dodawania słów kluczowych związanych z artykułem, w linii w Activeadmin.Edycja relacji wielu do wielu w Activeadmin
Mam zdefiniowane prosty wiele-do-wielu 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
chciałbym dodawać i edytować słowa kluczowe w formie en okolicy, więc ustawienie tego w 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
Działa to zgodnie z oczekiwaniami.
Ale jeśli dodaję to samo słowo kluczowe do dwóch różnych obszarów, słowo kluczowe zostanie utworzone dwa razy.
Wprowadzając nowe słowo kluczowe (w formularzu Obszar), chcę automatycznie utworzyć relację z istniejącym słowem kluczowym lub utworzyć nowe słowo kluczowe, jeśli nie istnieje. Jaki byłby najlepszy sposób, aby to osiągnąć?
Bardzo ładne rozwiązanie.Dzięki za udostępnienie! Użyłem obu klejnotów po tym, jak napisałem to pytanie, ale dobrze jest używać ich razem w ten sposób. –
dobre rozwiązanie, ale chcę, aby niektóre domyślne opcje zostały wybrane. Powiedzmy, że podczas aktualizacji chcę, aby moje obecne dzieci były domyślnie wybrane. Jak mogę to zrobić za pomocą select2. –
zrobiłem to z: selected => IDS –