사용자 클래스와 HABTM 관계가있는 이벤트 클래스가 있습니다. 2 사용자가 연결된 이벤트 만 포함하는 이벤트 범위를 만들려고합니다. 기본적으로 나는 모든 "일치"이벤트를 포함하는 범위를 작성하는 방법을 찾기 위해 노력하고있어 그래서 지금HABTM 관계 수를 가진 레일 범위
def status
self.users.length == 2 ? "matched" : "not matched"
end
:
나는 현재 다음을 반환하는 이벤트 # 상태 방법이있다. 내가 전혀 작동하지 않았던 scope :matched, self.users.length == 2
을 시도했지만, 내가 놓친 것과 비슷한 방법이 있습니까?
EDIT :이 클래스 메서드는 올바르게 처리하지만 스코프에 캡슐화 할 수 있다면 좋을 것입니다.
def self.pending
Event.all.map { |e| e if e.status == "matched" }
end
사실 저는이 방법을 약간 단순화했습니다. 세 가지 상태를 반환해야합니다. '(: users.count => 2)'는 불행히도 작동하지 않았습니다. 심볼에 대한 계산 방법이 없다고 말합니다. –
"users.count"가 대신 작동 할 수도 있습니다. 방금 성공하지 못한 구문을 빠르게 검색했습니다. 어쨌든, 그것은 기본 아이디어입니다. –