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 }