0
我想找到的标签与在一个参数数组通过标签的所有帖子。 帖子通过关联有很多标签。优化上的has_many选择查询:通过属性关联
目前我的代码如下所示:
if params.has_key?(:tags)
params[:tags].each do |tag|
@tags = Array.new if @tags.nil?
@tag = Tag.find_by_content(tag)
@tags << @tag if @tag
end
@allposts = Post.followed_by(@user).select { |p| p.tags.size != 0 && (p.tags & @tags).size == p.tags.size }
else
@allposts = Post.followed_by(@user)
end
什么我基本上做的是找到根据参数数组实际的标签模型,将它们放入一个数组,然后我在所有运行一个选择查询搜索那些具有相同标签数组的帖子。
有更好的和更清洁的方式做到这一点?
感谢供机型不同的查询方法有很多详细信息!这真的很有帮助。 你能解释一下范围说明,因为我也想了解发生了什么? 如何在RSPEC中测试该声明? – 2012-04-03 13:12:42
嗨加尔,将扩大我的答案解释范围说明 – 2012-04-03 15:53:14
感谢您的非常详细的答案! 我怎么Post.followed_by(@user)的所有标签? 帖子通过标签有很多标签 – 2012-04-08 11:32:41