1

私はRails 3を使用しています。シソーラスのように動作するアプリケーションを作成したいと思います。私はhas-and-belong-to-many(HABTM)の関係を行う方法についていくつかのチュートリアルを読んできましたが、私は1つの "アイテム"が他の多くのアイテム、同義語。私は私が何をしようとしていると仮定しRails 3のシソーラス

はビットバックエンドで各ポストは、いくつかの「関連記事」を持っている必要がありますブログで「関連記事」セクションのようなものです。

答えて

2

私は、この関係を扱うために別のモデルが必要な多対多の関係として考えています。

class Word < ActiveRecord::Base 
    has_many :source_words, :class_name=>"WordLink", :foreign_key=>:source_word_id 
    has_many :linked_words, :class_name=>"WordLink", :foreign_key=>:linked_word_id 

class WordLink < ActiveRecord::Base 
    belongs_to :source_word, :class_name=>"Word" 
    belongs_to :linked_word, :class_name=>"word" 

次に、あなただけの/表示の単語を作成するには、このような何かをする必要があると思い&同義語:

w = Word.create(:word_name=>"Cold") 
w.source_words.create(:linked_word=>Word.create(:word_name=>"Icy")) 

synonyms_as_text_array = w.source_words.collect {|s| s.linked_word.word_name }