Самый эффективный способ получить подмножество помеченных объектов от acts_as_taggable find_tagged_with? - PullRequest
1 голос
/ 13 октября 2009

Например, у меня есть именованная область действия sfw_only в моей модели изображений, которая возвращает изображения с nsfw == false.

Я также использую 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 Ответ

1 голос
/ 13 октября 2009

Я не знаком с act_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]).sfw_only
    ... remove images with nsfw == true
  end 
else
  if nsfw_mode
    @images = Image.all
  else
    @images = Image.sfw_only
end

В случае, если этого не произойдет, вы можете сделать свой собственный named_scope, который эмулирует find_tagged_with и связать его с вашей областью sfw_only. В этом посте описывается, как это сделать, если он еще не был добавлен в источник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...