rails 5 помогите настроить модель записи двух типов пользователей - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь найти лучшую структуру БД для этой установки:

У меня есть два типа пользователей: продажи и рынок.У каждого пользователя может быть несколько клиентов.Каждый клиент может иметь несколько транзакций. Транзакциям будет назначен тип транзакции: «продажи» или «рыночные».У каждого клиента может быть только один пользователь продаж и один пользователь рынка.

Мне нужно иметь возможность получать список транзакций для каждого пользователя, поэтому для пользователя «продажи» user.transactions возвращает все транзакции стип «sales» для всех клиентов, для которых пользователь «sales» является пользователем

Я начал со следующей настройки, но не могу получить все запросы, которые мне нужны, например:

u = User.find(5)
Transaction.all.where(sales_ee: u)
# This is returning nothing

На данный момент это настройка:

class User < ApplicationRecord
 has_many :sales_clients, :class_name => "Client", :foreign_key => "sales_ee_id"
 has_many :market_traders, :class_name => "Client", :foreign_key => "market_ee_id"
 has_many :clients, dependent: :destroy
 has_many :transactions, :through => :traders
end

class Client < ApplicationRecord
 belongs_to :sales_ee, :class_name => 'User', optional: true
 belongs_to :market_ee, :class_name => 'User', optional: true
 has_many :transactions, dependent: :destroy
 belongs_to :user
end

class Transaction < ApplicationRecord
 belongs_to :client
 has_one :user, :through => :client
 has_one :sales_ee, :through => :client
 has_one :market_ee, :through => :client, required: false
end

Я не уверен, что более подходящим вариантом может быть использование двух классов пользователей - любая помощь будет высоко оценена.

...