साथ शामिल रहा है निम्नलिखित मॉडलसक्रिय रिकॉर्ड एसटीआई
class Event < ActiveRecord::Base
has_many :attendances
class Attendance < ActiveRecord::Base
belongs_to :user
class Student < User
has_one :student_detail
class StudentDetail < ActiveRecord::Base
belongs_to :school
class Staff < User
has_one :staff_detail
class StaffDetail < ActiveRecord::Base
StudentDetail और StaffDetails में अतिरिक्त जानकारी है, मैं यह सब एक एसटीआई उपयोगकर्ता तालिका में होने से बचाने के कोशिश कर रहा हूँ की वजह से कुछ इसी तरह के साथ काम करने के लिए है तालिका पैटर्न प्रति ठोस वर्ग
मैं यह आसानी से पर्याप्त
Event.includes(:attendances => :user).where(...)
कर सकते हैं लेकिन मैं एक होना चाहता हूँ उपयोगकर्ता प्रकार उदा।
Event.includes(attendances: {:user => :student_details })
यह उपयोगकर्ताओं में से कुछ के रूप में असफल हो जायेगी स्टाफ वस्तुओं रहे हैं।
मुझे पता है रेल बॉक्स से बाहर इस का समर्थन नहीं करेंगे, लेकिन किसी को भी किसी भी चाल इस काम करने के लिए प्राप्त करने के लिए
सबसे अच्छा समाधान अभी छात्र और स्टाफ यानी
को उपस्थिति पर उपयोगकर्ता विभाजित किया गयाclass Attendance < ActiveRecord::Base
belongs_to :student, -> {includes(:staff_detail) }
belongs_to :staff, -> {includes(:student_detail) }
#belong_to :user
जो आदर्श नहीं है। किसी के पास कोई सुझाव है? इसे हल करने का तरीका।
वाक्य रचना फिर से बदल गया है, रेल 4.1 मेरा मानना है कि के लिए कर सकते हैं। नया वाक्यविन्यास 'ActiveRecord :: संघ :: Preloader.new.preload (रिकॉर्ड, एसोसिएशन) 'है।विवरण के लिए [प्रतिबद्ध] देखें (https://github.com/rails/rails/commit/6e5a2cb9519aab568ea0cfea2f42364de8ccf655)। – Leito