ruby on rails cache

时间:2016-06-04 03:52:07

标签: ruby-on-rails caching

我正在从控制器抓取一个网站并将其放入JSON响应/视图中。问题是它似乎缓存了相同的结果,尽管我抓的内容不同。我完全迷失了该怎么做。我找到了关于如何在页面上启用缓存的链接,但没有找到如何防止缓存进行缓存的链接。

    class XXXXXController < ApplicationController
  before_action :set_song, only: [:show, :edit, :update, :destroy]

  # GET /songs
  # GET /songs.json
  def index
    @xxx = xxxx.all


    @url = []
    doc = Nokogiri::HTML(open("http://xxxxx.xxxx.org/xx/"))

    doc.xpath("//a[@class=\"replylink\"]").each { |node|
      thread = Nokogiri::HTML(open("http://xxxxx.xxxx.org/xxx/" + node["href"]))

      thread.xpath("//blockquote[@class=\"postMessage\"]").each { | xx_post |
        xx_post.text.scan(/www\.youtube\.com\/watch\?v=(([a-zA-Z0-9]){11})/).each { | yt |
          @url << Regexp.last_match[1] if Regexp.last_match
        }    
      }
    }
  end

我开放的网站每秒都在变化一次。

    json.array!(@url) do |url|
  json.url song_url(url, format: :json)

end

它仍然缓存。当我修改css资产时,它开始这样做了。

1 个答案:

答案 0 :(得分:0)

我添加了json.cache!。新的jbuilder文件:

json.cache! @url do |asdf|
  json.array!(@url) do |url|
    json.url song_url(url, format: :json)
    #url
  end
end