0
class User < ActiveRecord::Base
    has_many :assignments
    has_many :projects, through: :assignments
end

class Project < ActiveRecord::Base
    has_many :assignments
    has_many :users, through: :assignments
end

class Assignment < ActiveRecord::Base
    belongs_to :user
    belongs_to :project
    scope :current_assignments, where(...)
end

現在のユーザーに現在割り当てられているすべてのプロジェクトを取得したいと考えています。何かのようなもの:

current_user.current_assigned_projects

しかし、今、私はしなければなりません:

current_user.assignments.current_assignments.map{ |a| a.project }.uniq

また

Project.includes(:users, :assignments).where('assignments.status' => 1, 'users.id' => current_user.id)

これを行う美しい方法はありますか?

4

1 に答える 1

0

何かのようなもの

class User < ActiveRecord::Base
   has_many :assignments
   has_many :projects, through: :assignments
   has_many :current_projects, conditions: 'assignments.status = 1', through: :assignments
end

動作するはずです。または、少なくとも私はそう願っています;)

于 2012-10-01T17:55:22.667 に答える