Tôi muốn ActiveRecord
tra cứu bằng cột không phải id từ bảng. Hy vọng điều này là rõ ràng khi tôi cung cấp cho bạn mẫu mã của tôi.Đường ray: tra cứu khóa ngoài không id ActiveRecord
class CoachClass < ActiveRecord::Base
belongs_to :coach
end
class Coach < ActiveRecord::Base
has_many :coach_classes, :foreign_key => 'user_name'
end
Khi tôi làm một coach_obj.coach_classes
, điều này một cách đúng đắn gây
SELECT * FROM `coach_classes` WHERE (`coach_classes`.user_name = 2)
(2 là của id
đây HLV rằng đó là vấn đề của tôi.)
Tôi muốn nó để kích hoạt
SELECT * FROM `coach_classes` WHERE (`coach_classes`.user_name = 'David')
('David' là của huấn luyện viên đó user_name
)
user_name
là duy nhất và hiện diện trong cả hai bảng.
Tôi không muốn có số coach_id
trong bảng coach_classes
vì một số lý do.
tư vấn không mong muốn: bạn có thể muốn cân nhắc thêm coach_id vào bảng, điều này sẽ giúp dễ dàng hơn nếu mối quan hệ này trở nên lồng nhau và thông thường hơn. –
Cảm ơn Jed. Nhưng tôi không muốn coach_id ở đó vì một lý do nào đó. – Garfield