Has_many ، ينتمي إلى Association حيث يحتوي النموذج المرتبط بـ HAS_MANY
-
28-09-2019 - |
سؤال
لدي نموذج مستخدم لديه العديد من المعارك. القتال ينتمي إلى المستخدم.
هناك مفتاحان أجنبيان في جدول المعارك يشيران إلى المستخدم PK - Challenger_id و Challenge_ID.
الحيلة هي كيف يمكنني كتابة جمعية HAS_MANY على نموذج المستخدم بحيث تُرجع المعارك إلى حيث user_id = Challenger_ID أو Challenge_id؟
المحلول
أعتقد أنه يجب عليك استخدام رابطتين منفصلتين وأن تنشئ طريقة لإعادة جميع المعارك. أليس من الممكن يومًا ما ستحتاج إلى الحصول على فقط fights
حيث بعض @user
كان challenger
?
سأفعل هذا مثل ما يلي:
class User < ActiveRecord::Base
has_many :fights_as_challenger, :foreign_key => :challenger_id,
:class_name => "Fight"
has_many :fights_as_challengee, :foreign_key => :challengee_id,
:class_name => "Fight"
def all_fights
self.fights_as_challenger + self.fights_as_challengee
end
end
لا تنتمي إلى StackOverflow