User.not_in_project(project)
과 같은 명명 된 범위를 만들려고하는데 올바른 방법을 찾을 수 없습니다.복잡함 named_scope : 특정 프로젝트에 속하지 않은 사용자 찾기
나는 사용자, 프로젝트 및 업무 조인을 모델로이 :이 찾아 절에 named_scope
유사과 노력
class User < ActiveRecord::Base
has_many :duties, :extend => FindByAssociatedExtension
has_many :projects, :through => :duties
end
class Duty < ActiveRecord::Base
belongs_to :user
belongs_to :project
end
class Project < ActiveRecord::Base
has_many :duties
has_many :users, :through => :duties
end
:
User.all(:joins => :duties, :conditions => ['duties.project_id != ?', my_project])
그러나 그 날 사용자에게 반환하지 않습니다 누가 my_project
을 가지고 있지 않지만 my_project
이외의 프로젝트를 가진 사용자. 즉
def self.not_present_in p
self.all.reject{|u| u.projects.include?(p)}
end
내가 어떻게 할 수 있습니까?
돌아 오시겠습니까? 나는 이것에 대해 명확하지 않다. –
정확하게이 메서드와 똑같이 동작하는 명명 된 범위를 원합니다. def self.not_present_in p self.all.reject {| u | u.projects.include? (p)} end Project를 인수로 전달하지 않은 사용자를 반환하고 싶습니다. 이 정보가 도움이 되셨습니까? –
소스 코드가 들어 있기 때문에 위의 설명을 포함하도록 질문을 편집했습니다. –