上方橫幅
上方橫幅
上方橫幅
上方橫幅
上方橫幅

xihusite

西湖國小

請點選上圖導至臺北市公版網站

日誌標題:

find_tagged_with 替換方式

內容:

之前西湖日誌在「分類文章」的地方,採用的方式是 find_tagged_with ,但是 tag 只要多於兩個,效能就會奇差無比!

@blogarticles = BlogArticle.find_tagged_with(params[:tags], :order => 'id DESC', :match_all => true).paginate :page => params[:page], :order => 'id DESC', :per_page => 20

現下改用一次取一個 tag 的文章的方式,將所有相關的 tag 取出,最後交集起來就好,效能好上百倍!

@xihu_blogarticles = BlogArticle.find_tagged_with("西湖日誌")

    for tag in params[:tags]

      @all_blog_articles = @xihu_blogarticles & BlogArticle.find_tagged_with(tag)

    end

    @blogarticles = @all_blog_articles.paginate :page => params[:page], :order => 'id DESC', :per_page => 20