例如,我的Image模型中有一个命名范围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
答案 0 :(得分:1)
我不熟悉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]).sfw_only
... remove images with nsfw == true
end
else
if nsfw_mode
@images = Image.all
else
@images = Image.sfw_only
end
如果它没有,你可以让你自己的named_scope模仿finds_tagged_with并用你的sfw_only范围链接它。 This post描述了如何将其合并到源中。