【发布时间】:2012-04-04 00:14:26
【问题描述】:
我想查找所有带有在 params 数组中传递的标签的帖子。 post通过关联有很多标签。
目前我的代码如下所示:
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
我基本上在做的是根据 params 数组找到实际的标签模型并将它们放入一个数组中,然后我对所有帖子运行选择查询,搜索具有相同标签数组的帖子。
有没有更好更干净的方法来做到这一点?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 activerecord