Я не знаком с 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. В этом посте описывается, как это сделать, если он еще не был добавлен в источник.