Ich kratze eine Website von einem Controller und setze sie in eine JSON-Antwort/Ansicht. Das Problem ist, dass es scheint, das gleiche Ergebnis zu cachen, obwohl der Inhalt, den ich scrape, unterschiedlich ist. Ich bin völlig verloren, was ich tun soll. Ich finde Links darüber, wie ich den Cache auf den Seiten aktivieren kann, aber nicht, wie man verhindert, dass Rails zwischengespeichert werden.Ruby on Rails Cache
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
Die Seite, die ich öffne, ändert sich einmal pro Sekunde.
json.array!(@url) do |url|
json.url song_url(url, format: :json)
end
Es speichert immer noch. Es begann damit, als ich ein CSS-Asset änderte.
Zeigen Sie durch Code, was Sie meinen, es scheint, das gleiche Ergebnis zu cachen, obwohl der Inhalt, den ich scrape, anders ist. – Anand
sind Sie im Produktionsmodus? –
ja, ich bin. Ich bin neu in Schienen, so dass es sehr verwirrend ist –