从Rails中的表中常规检索列

时间:2012-03-05 19:06:15

标签: ruby-on-rails ruby join has-many-through has-many

我有一个适用于多种语言的词典数据库。结构是这样的:

表:English_words

  • id
  • wordtype
  • 语法

表:Spanish_words (与英语相同)

表:French_words (与英语相同)

表:English_Spanish

  • english_id
  • spanish_id
  • weight_english
  • weight_spanish
  • use_english_if
  • use_spanish_if

最后四列是帮助我的程序决定哪些可能的翻译最适合特定上下文。我的英文模型包含

has_many :es_words, :through => :english_spanish, :order => 'weight_english ASC'

为了按照偏好顺序获得可能的西班牙语翻译。另外,我后来需要根据使用_.._ if列中的规则进行更复杂的过滤。因此,每当我编写“this_word.es_words”以检索英语单词的西班牙语翻译时,我希望我的结果对象也包含使用_.._ if if连接表中的列。我无法想象只需要没有这些列的翻译,所以我想在模型级别而不是在控制器中解决这个问题。最好的方法是什么?

(我在Spanish_words表中没有use_if的原因是我正在翻译多种语言,条件会根据我翻译的语言而有所不同)

1 个答案:

答案 0 :(得分:0)

请参阅eager loading of associations(“包含”方法)。