1
我正在使用Rails 3,我想創建一個類似於同義詞庫的應用程序。我已經閱讀了一些關於如何實現has-and-belong-to-many(HABTM)關係的教程,但是我不確定如何配置我的模型,使得一個「item」具有並且屬於許多其他項目,即它的同義詞。Rails 3中的詞庫3
我想我想要做的是有點像博客中的「相關帖子」部分,在後端每個帖子必須有幾個「相關帖子」。
我正在使用Rails 3,我想創建一個類似於同義詞庫的應用程序。我已經閱讀了一些關於如何實現has-and-belong-to-many(HABTM)關係的教程,但是我不確定如何配置我的模型,使得一個「item」具有並且屬於許多其他項目,即它的同義詞。Rails 3中的詞庫3
我想我想要做的是有點像博客中的「相關帖子」部分,在後端每個帖子必須有幾個「相關帖子」。
我認爲這是一個多對多的關係,你需要一個單獨的模型來處理關係。
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 }