У меня есть две таблицы следующим образом:Пользовательские внешние ключи с Rails
+-----+
Software
+-----+
id
name
latest_version [Field that needs to be implemented]
+-----+
Versions
+-----+
id
version_string
released_date
Я определил has_many :versions
в Software
модели и belongs_to :software
в Version
модели, чтобы связать их.
Теперь проблема в том, что мне нужно получить последнюю версию на основе выпущенной даты и сохранить другую ссылку в таблице Software для более быстрого поиска. Итак, как я могу сделать столбец latest_version
ссылкой на одну строку в таблице Версии с Rails? Или это плохая практика?
UPDATE: Я уже установил именованный объект latest_version
в модели Версии, чтобы получить последнюю версию. Тем не менее, я думаю, что это не лучший вариант, если приложение масштабируется (я думаю)
Да, я уже пробовал ваше первое решение. Я использовал это в файле миграции: 't.integer: version,: latest_version_id'. –
Тогда, пока ваши таблицы проиндексированы, вам не о чем беспокоиться. –
Когда я вызываю команду 'Software.first.latest_version', я получаю следующую ошибку: Version Load (0.0ms) SELECT' versions'. * FROM 'versions' WHERE' versions'.'latest_version_id' = 1 LIMIT 1 Mysql2 :: Ошибка: Неизвестный столбец «version.latest_version_id» в «where clause»: SELECT 'versions'. * FROM' versions' WHERE 'versions'.'latest_version_id' = 1 LIMIT 1 –