module Jobshop class Organization < ApplicationRecord self.primary_key = :organization_id has_many :users, inverse_of: :organization, dependent: :restrict_with_exception has_many :roles, inverse_of: :organization, dependent: :restrict_with_exception has_many :places, inverse_of: :organization, dependent: :restrict_with_exception has_many :collections, inverse_of: :organization, dependent: :restrict_with_exception has_many :things, inverse_of: :organization, dependent: :restrict_with_exception has_many :orders, inverse_of: :organization, dependent: :restrict_with_exception has_many :companies, inverse_of: :organization, dependent: :restrict_with_exception has_many :products, inverse_of: :organization, dependent: :restrict_with_exception has_many :routing_processes, inverse_of: :organization, dependent: :restrict_with_exception scope :grouped_by_email, ->(email_addresses) { Jobshop::User .where(email: email_addresses) .joins(:organization) .includes(:organization) .each_with_object({}) { |user, organizations| (organizations[user.email] ||= []) << user.organization } } end end