lib/camaraderie/organization.rb in camaraderie-0.1.3 vs lib/camaraderie/organization.rb in camaraderie-0.2

- old
+ new

@@ -2,21 +2,25 @@ module Organization extend ActiveSupport::Concern included do # Associations - has_many :memberships, dependent: :destroy - has_many :users, through: :memberships + has_many :memberships, dependent: :destroy, foreign_key: :organization_id, class_name: 'Membership', inverse_of: :organization + has_many :users, through: :memberships, class_name: Camaraderie.user_class, inverse_of: :organizations # Define a method for each type of membership # # @example # user = User.new(email: 'foo@example.com') # Organization.first.admins.create(user: user) Camaraderie.membership_types.each do |type| class_eval <<-RUBY, __FILE__, __LINE__ + 1 def #{type.pluralize} memberships.#{type.pluralize} + end + + def #{type}_users + Camaraderie.user_class.constantize.where(id: #{type.pluralize}.pluck(:user_id)) end RUBY end end end