有關如何與員工,經理,下屬示例一起完成此操作的相關信息很多,但除此之外我無法在網上找到其他任何信息。你如何創建多個自連接關係?
我只是試圖創建一個模型模式,其中的Word對象可以有許多反義詞或許多同義詞。這些反義詞和同義詞基本上是單詞對象。
我希望能夠運行以下命令:
word = Word.create(name:'good')
antonym = Word.create(name:'bad')
word.antonyms << antonym
synonym = Word.create(name:'right')
word.synonyms << synonym
word.antonyms # This gives you a resultset of all of the antonyms related to that word.
我的模型:
# The following doesn't work right now
class Word < ActiveRecord::Base
has_many :antonyms, :foreign_key => 'antonym_id', :class_name => 'Word'
has_many :synonyms, :foreign_key => 'synonym_id', :class_name => 'Word'
end
class Antonym < ActiveRecord::Base
belongs_to :word, :foreign_key => "word_id", :class_name => "Word"
end
class Synonym < ActiveRecord::Base
belongs_to :word, :foreign_key => "word_id", :class_name => "Word"
end
我試着刪除其他文件,但它給我一個'未知屬性:antonym_id'錯誤。我需要明確地將antonym_id添加到模型嗎? – perseverance
@perseverance,是的,你需要它們('synonym_id'和'antonym_id')。它們必須是你的'words'表中的列。我的印象是你已經有了列。 – vee
Currentl在Word模型中有以下幾列:詞,定義。現在我要添加antonym_id和synonym_id。我是否需要添加其他列? – perseverance