1

我正在使用Rails 3,我想創建一個類似於同義詞庫的應用程序。我已經閱讀了一些關於如何實現has-and-belong-to-many(HABTM)關係的教程,但是我不確定如何配置我的模型,使得一個「item」具有並且屬於許多其他項目,即它的同義詞。Rails 3中的詞庫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 }