У меня есть словарная база данных, которая работает для многих языков. Структура выглядит так:
Таблица: английские слова
- id
- слово
- wordtype
- грамматика
Таблица: испанские слова
(так же, как для английского)
Таблица: French_words
(так же, как для английского)
Таблица: английский_испанский
- 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 из присоединяющейся таблицы. Я не могу себе представить, что когда-либо нужны только переводы без этих столбцов, поэтому я хотел бы решить это на уровне модели, а не на контроллере. Каков наилучший способ сделать это?
(причина, по которой я не использую use_if в таблице Spanish_words, заключается в том, что я перевожу несколько языков, и условия будут различаться в зависимости от того, с какого языка я перевожу)