キャッシュのこともあるんだろうけど、うまく行ったり行かなかったりするな。
タイムラインの、プレビューカードが削除されたトゥートをクリックして、詳細表示にしたタイミングだと、まだ新しいプレビューカードは表示されない。
そこでブラウザを再読み込みすると、カードが表示されたりされなかったりする
statuses_controller.rb の show メソッドを、
def show
@status = cache_collection([@status], Status).first
if !@status.preview_cards.first
FetchLinkCardService.new.call(@status)
end
render json: @status, serializer: REST::StatusSerializer
end
というように書き換えてみたんですが(空行で挟まれたif-end)、こうですかわかりません……
ひとつ分かった:
プレビューカードが削除されたトゥートをWebUIでクリックした時点では、再生成されない。そのまま、ページを再読み込みすると、再生成される
FetchLinkCardServiceを呼ぶタイミングが間違ってる模様
@hanage999 プライバシー設定として、プレビューカードの即時取得を行わないようにする項目があると完璧ですねw
@noellabo もうそこまで行くとお手上げでござるよ(すでにお手上げだけど)……