Это должно быть легко, я думаю ...
Организация имеет владельца и участников - оба являются пользователями.
Это настраивается организацией, используя имя_класса: «Пользователь», например:
class Organisation < ApplicationRecord
belongs_to :owner, class_name: "User", foreign_key: "owner_id"
has_many :organisations_users
has_many :members, class_name: "User", through: :organisations_users, source: :user
end
Это работает, но мне нужна функция all_members (или область действия), чтобы я мог вернуть владельца и членов в одном массиве (или объекте ActiveRecord). Я думал, что это будет тривиально, но на самом деле это не так.
Я пробовал:
def all_members
members << owner
end
это, конечно, совсем не то, что я хочу ... это добавляет владельца к персоналу каждый раз, когда я звоню.
def all_members
[owner, members]
end
этот тип работает, но возвращает вложенный массив, к которому трудно получить правильный доступ.
scope :all_members, joins(:members).merge(:owner)
это не работает вообще. Наверное ерунда.
def all_members
members_array = members.dup
members_array << owner
end
Это все еще постоянно изменяет членов, включая владельца? !!
Помощь! (Спасибо)