2016-09-13 1 views
0

UserTask 테이블을 통해 many to many 연관이 있습니다. task (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 

내 사용자 모델

여기
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 }) 
관련 문제