Activeadmin で記事に関連するキーワードをインラインで編集/追加する方法を探しています。
簡単な多対多のセットアップを定義しました。
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
en Area フォームでキーワードを追加および編集したいので、これを Activeadmin でセットアップします。
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
これは期待どおりに機能します。
しかし、同じキーワードを 2 つの異なる領域に追加すると、キーワードが 2 回作成されます。
新しいキーワードを (エリア フォームに) 入力するときに、既存のキーワードとの関係を自動的に作成するか、存在しない場合は新しいキーワードを作成したいと考えています。それを行う最善の方法は何ですか?