2016-09-13 3 views
0

私は、UserTaskテーブルを使用して多対多の関連性を持っています。私はタスク(task.creator)からタイプクリエイターでユーザーを取得する必要があります。 task.user_tasks.where(user_type:0)のようになりますが、レールの関連付けが必要です。出来ますか?ここで 多くのアソシエーションから特定のユーザーを取得

は、あなたが使用してそれを得ることができ、私のUserTaskモデル

class UserTask < ApplicationRecord 
    belongs_to :user, foreign_key: 'user_email', primary_key: 'email' 
    belongs_to :task 
    enum user_type: [:creator, :allowed] 
end 

答えて

2

私のタスクモデル

ここ
class Task < ApplicationRecord 
    has_many :user_tasks, dependent: :destroy 
    has_many :users, through: :user_tasks 
end 

私のUserモデル

ここ
class User < ApplicationRecord 
    has_many :user_tasks, foreign_key: 'user_email', primary_key: 'email' 
    has_many :tasks, through: :user_tasks 
end 

されている

User.joins(:user_tasks).where(user_tasks: { user_type: 0 }) 
関連する問題