私が達成しようとしているもののテーブルとリレーションシップの設定方法がわかりません。私は関係を通してhas_oneが必要だと思ったが、私はそれに対してアドバイスするいくつかのポストを見た。has_one関連付けまたは別の方法ですか?
私が達成しようとしているのは、自分のサービスのリストを作成し、スタッフがこのリストから行うサービスを選択することです。
は、ここで私がこれまで持っているものです。
class User
has_many :staff
# user and shop have relationship via roles (not shown for simplicity)
end
class Shop
has_many :staff
has_many :services
# user and shop have relationship via roles (not shown for simplicity)
end
class Service
belongs_to :shop
has_many :staff through: :staff_services
end
class Staff
belongs_to :shop
belongs_to :user
has_many :services through: :staff_services
end
class StaffService
belongs_to :staff
# ? has_one :service through: :shop
# ? belongs_to :service
end
私がスタッフは彼らだけがのスタッフです店からサービスを選択することができるようにStaffServicesのための関係を設定するかどうかはわかりません。
ご協力いただければ幸いです。ありがとう!
私が最初にそれをやろうと思った方法です。しかし、このようにすれば、スタッフは潜在的に別の店のサービスを持つことができるとは限りません。 – adds
さて、あなたはテーブルの形状を定義しています。そこにはデータの制限はありません。スタッフが別の店舗のサービスを受けないようにするには、同じ店舗とスタッフから来たサービスのみを返すスコープを用意することができます。 – jaydel