1. Ruby / Говнокод #14559

    −127

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    class Company
      has_many   :company_contacts, autosave: true
      has_many   :contacts,         through: :company_contacts, class_name: 'User'
    
      has_many :primary_contacts, through: :company_contacts, class_name: 'User',
        conditions: {company_contacts: {active: true, position: CompanyContact::PRIMARY}}
      has_many :secondary_contacts, through: :company_contacts, class_name: 'User',
        conditions: {company_contacts: {active: true, position: CompanyContact::SECONDARY}}
      has_many   :contacts,           through: :company_contacts, class_name: 'User'
    
      def primary_contact
        primary_contacts.first
      end
    
      def primary_contact_id
        primary_contact.try(:id)
      end
    
      def primary_contact_id=(user_id)
        self.company_contacts.new(user_id: user_id, position: CompanyContact::PRIMARY, active: true) if user_id.present?
      end
    
      def secondary_contact
        secondary_contacts.first
      end
    
      def secondary_contact_id
        secondary_contact.try(:id)
      end
    
      def secondary_contact_id=(user_id)
        self.company_contacts.new(user_id: user_id, position: CompanyContact::SECONDARY, active: true) if user_id.present?
      end
    end

    belongs_to через has_many.

    Запостил: rubygovnokod, 13 Февраля 2014

    Комментарии (1) RSS

    Добавить комментарий