2009-10-13 4 views
1

예를 들어, nsfw == false로 이미지를 반환하는 내 이미지 모델에 명명 된 범위 sfw_only이 있습니다.태그가 지정된 객체의 하위 집합을 acts_as_taggable find_tagged_with에서 가져 오는 가장 효율적인 방법은 무엇입니까?

나는 또한 acts_as_taggable_on_steroids을 사용하고 있으며 다음과 같은 것을하는 가장 효율적인 방법을 생각하려고합니다.

if !params[:tag].nil? 
    if nsfw_mode 
    @images = Image.find_tagged_with(params[:tag]) 
    else 
    @images = Image.find_tagged_with(params[:tag]) 
    ... remove images with nsfw == true 
    end 
else 
    if nsfw_mode 
    @images = Image.all 
    else 
    @images = Image.sfw_only 
end 

답변

1

은 내가 acts_as_taggable_on_steroids에 익숙하지 않다. 그러나이 문서는 명명 된 범위와 호환되는 것으로 믿습니다.

그래서 당신은 당신이 당신이 finds_tagged_with를 에뮬레이트 자신의 named_scope이야하고 sfw_only 범위와 함께 체인 만들 수없는 경우

if !params[:tag].nil? 
    if nsfw_mode 
    @images = Image.find_tagged_with(params[:tag]) 
    else 
    @images = Image.find_tagged_with(params[:tag]).sfw_only 
    ... remove images with nsfw == true 
    end 
else 
    if nsfw_mode 
    @images = Image.all 
    else 
    @images = Image.sfw_only 
end 

을 할 수 있어야합니다. This post은 이미 소스에 병합되지 않은 경우이를 수행하는 방법을 설명합니다.

+0

감사합니다. 명명 된 범위를 인식하지 못했고 체인을 찾을 수 없습니다. – mculp

관련 문제