방금 문제가 발생한 문제를 해결하기 위해 친구가 stackoverflow를 참조했습니다. 나는 루비에 대해 상당히 새롭다. 나는 우리 웹 사이트에 다양한 참여와 성공을 바탕으로 사람들에게 다양한 메달을 수여하기 위해 일정한 간격으로 달리기 위해 예정된 스크립트 (medal_worker.rb)가있는 협업 프로젝트를 진행 중이다. 새로운 메달 중 하나는 "이정표"에 대한 사람들의 보상입니다. 이 문제의 목적을 위해 100, 1000, 10000 개의 의견을 달 때 메달을주고 싶다고합시다. 사용자 모델 (user.rb)의 named_scopes를 사용하여 필자가 찾고있는 사용자의 필터링 된 목록을 제공하여이 작업을 수행하고 싶습니다.Ruby on Rails : 중첩 된 named_scopes 사용
내 질문은 다음과 같습니다. 각각의 마일스톤 의견 수준 (각 사용자 모델의 named_scopes를 사용하는 것이 좋습니다)에 해당 메달이없는 사용자를 찾으려면 어떻게해야합니까? 나는 사용자 모델에서 named_scopes (user.rb)와에서 오전
다음def award_comment_milestone(comments)
users = Users.frequent_comment_club_members(comments).not_awarded_medal(Medal.find_by_id(medal.id))
for user in users do
award_medal(medal, nil, user) if @award
end
end
은 다음과 같습니다 :
named_scope :frequent_comment_club_members, lambda { |*args|
{:include => comment_records, :conditions => ['comment_records.comment_type = ? and comment_records.comments >= ?', 'User', (args.first || 0)]}
}
named_scope :not_awarded_medal, lambda { |medal|
{:include => :awards, :conditions => ['awards.medal_id not in (select awards.medal_id from awards where awards.medal_id = ?)", medal.id] }
}
다음
내 model_worker.rb 파일에서 exerpt입니다
이것은 내가 원하는대로 작동하지 않지만 named_scopes에 문제가 있는지 또는 arguements 또는 what을 전달하는 방법을 알지 못합니다. 감사.
정확히 작동하지 않는 항목은 무엇입니까? – jonnii