我正在从控制器抓取一个网站并将其放入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资产时,它开始这样做了。
答案 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