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