与えられたモデル
class Composition < ActiveRecord::Base
  attr_accessible :content
  has_many :compositions_tags
  has_many :tags, :through => :compositions_tags
end
class Tag < ActiveRecord::Base
  attr_accessible :text
  has_many :compositions_tags
  has_many :compositions, :through => :compositions_tags
  validates_uniqueness_of :tag, only: [:create, :update], message: "already taken"
end
class CompositionsTag < ActiveRecord::Base
  belongs_to :composition
  belongs_to :tag
end
さて、例えば私は
Composition.create(content: "Hello").tags.create(text: "#hi")
結果は、コンテンツ「Hello」とテキスト「#hi」のタグが作成されたコンポジションになります。
次に、コンポジションを再度作成します。
Composition.create(content: "Goodmorning")
今、私が知らない、やりたかったのは、それも既存のタグにテキスト「#hi」で関連付けることです。
どうすれば最もエレガントな方法でそれを行うことができますか?