Я хочу ActiveRecord
для поиска по столбцу non-id из таблицы. Надеюсь, что это ясно, когда я даю вам мой пример кода.Рельсы: поиск внешнего ключа без идентификатора ActiveRecord
class CoachClass < ActiveRecord::Base
belongs_to :coach
end
class Coach < ActiveRecord::Base
has_many :coach_classes, :foreign_key => 'user_name'
end
Когда я делаю coach_obj.coach_classes
, это справедливо вызывает
SELECT * FROM `coach_classes` WHERE (`coach_classes`.user_name = 2)
(2 является, что тренер id
здесь что моя проблема.)
Я хочу, чтобы вызвать
SELECT * FROM `coach_classes` WHERE (`coach_classes`.user_name = 'David')
(«Давид» - это user_name
)
user_name
уникален и присутствует в обеих таблицах.
Я не хочу иметь coach_id
в моей таблице coach_classes
по какой-то причине.
незапрашиваемый совет: вы можете подумать о добавлении coach_id в таблицу, это упростит, если это отношение станет вложенным и более обычным. –
Спасибо, Jed. Но мне почему-то не нужен coach_id. – Garfield