2

以下のActiveRecordモデルとアソシエーションがある場合、account_userロールが「owner」に設定されているユーザーを参照するアカウントモデルにhas_one :ownerアソシエーションを追加する必要があります。役割を持っているアソシエーションを介してActiveRecord has_oneを作成する

AccountUserモデルは、アカウントのユーザーを通じて多くのユーザーがいる

class AccountUser < ApplicationRecord 
    enum role: [:user, :admin, :owner] 

    belongs_to :account 
    belongs_to :user 
end 

勘定モデルを属性。

class Account < ApplicationRecord 
    has_many :account_users 
    has_many :users, through: :account_users 
    has_one :owner, -> { where(role: :owner) } #, correct options here. 
end 

アカウントのユーザーによって多くのアカウントを持っていますユーザーモデル

class User < ApplicationRecord 
    has_many :account_users 
    has_many :accounts, through: :account_users 
end 

答えて

1

は中間協会account_owner作ってみる:

class Account < ApplicationRecord 
    has_many :account_users 
    has_many :users, through: :account_users 

    has_one :account_owner, -> { where(role: :owner) }, class_name: 'AccountUser' 
    has_one :owner, through: :account_owner, source: :user 
end 
関連する問題