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 回作成されます。
新しいキーワードを (エリア フォームに) 入力するときに、既存のキーワードとの関係を自動的に作成するか、存在しない場合は新しいキーワードを作成したいと考えています。それを行う最善の方法は何ですか?