J'ai une table cameras
et quelles options sont disponibles avec current_user.id
. Dans la table des caméras, chaque caméra a un owner_id
qui est en fait l'ID de l'utilisateur qui a ajouté la caméra. Caméras pour l'utilisateur en cours peut être obtenir comme ceObtenir des données via l'association dans Rails PG Sequel
user_cameras = Camera.where(owner_id: current_user.id).order(:id).all
Mais j'ai une autre table camera_shares
dans laquelle il y a une camera_id
et un user_id
(avec qui l'appareil a été partagé), ce que je fais est, Obtenir toutes les actions privilégiées de premier où le user_id
est-current_user.id
et obtenir tous les camera_id
« s et à travers eux je reçois des caméras comme
camera_shares = CameraShare.where(user_id: current_user.id).all
camera_share_ids = []
camera_shares.each do |share|
camera_share_ids[camera_share_ids.count] = share.user_id
end
@shared_cameras = Camera.where(id: camera_share_ids).order(:id).all
ce que je suis à la recherche est un moyen de faire de se joindre à la première requête où je suis obtenir caméras d'utilisateur, de sorte que dans une requête, je peux obtenir tout e caméras appartenant à l'utilisateur et ainsi que ceux qui ont été partagés avec lui, As In camera_shares, j'ai le refernce de user_id
et aussi camera_id.
Est-il possible de résoudre tout ce gâchis en une seule requête?
MISE À JOUR: les détails de Camera.rb
class Camera < Sequel::Model
include Hashie::Extensions::Mash
many_to_one :vendor_model, class: 'VendorModel', key: :model_id
one_to_many :endpoints, class: 'CameraEndpoint'
many_to_one :owner, class: 'User', key: :owner_id
one_to_many :shares, class: 'CameraShare'
one_to_many :webhooks, class: 'Webhook'
one_to_one :cloud_recording
one_to_one :motion_detection
CameraShares détails
class CameraShare < Sequel::Model
# Share kind constants.
PRIVATE = 'private'.freeze
PUBLIC = 'public'.freeze
ALL_KINDS = [PRIVATE, PUBLIC]
# Class relationships.
many_to_one :camera
many_to_one :user
many_to_one :sharer, class: 'User', key: :sharer_id
êtes-vous sérieux? Je ne vois même pas de référence de camera_shares dans tout ça? – ijunaidfarooq
S'il vous plaît lire attentivement la question et la réponse :) – ijunaidfarooq
Pouvez-vous s'il vous plaît partager les associations mentionnées dans 'camera.rb' – Salil