Moje kontroler ma to:szyny 3 buforowanie: wygasają skargi o nazwie trasy
caches_action :render_ticker_for_channel, :expires_in => 30.seconds
W moich trasach plik mam to:
match '/render_c_t/:channel_id' => 'render#render_ticker_for_channel', :as => :render_channel_ticker
W pliku dziennika widzę to:
Write fragment views/mcr3.dev/render_c_t/63 (11.6ms)
Jak wygasić to ręcznie? Muszę wygasić to z innego kontrolera niż kontroler renderowania, ale nawet w kontrolerze renderowania nie mogę go wydać, aby wygasło właściwe.
Jeśli zrobić:
expire_action(:controller => 'render', :action => 'render_ticker_for_channel', :id => c.id)
widzę:
Expire fragment views/mcr3.dev/render/render_ticker_for_channel/63 (3.2ms)
Jeśli zrobić:
expire_action(:controller => 'render', :action => 'render_c_t', :id => c.id)
widzę:
Expire fragment views/mcr3.dev/render/render_c_t/63 (3.2ms)
To:
expire_action("render_c_t/#{c.id}")
produkuje:
Expire fragment views/render_c_t/63 (3.5ms)
Jak mogę to wygaśnie tą samą drogą, że 'caches_action' jest produkujących ?!
Nie jestem wystarczająco pewny, aby dodać to jako pełną odpowiedź, ale czy próbowałeś tylnych drzwi? 'Rails.application.routes.url_helpers' daje dostęp do twoich pomocników i zwraca ciąg znaków, który jest ścieżką i/lub adresem URL, który zostanie wysłany do przeglądarki w nagłówku Location. Wypróbuj 'Rails.application.routes.url_helpers.render_ticker_for_channel_path (63)' oraz 'Rails.application.routes.url_helpers.render_ticker_for_channel (63,: host => 'mcr3.dev ') 'Być może będziesz w stanie przekazać wynikowy ciąg (z pewną manipulacją) do' expire_action' i sprawić, że znajdzie właściwy fragment w pamięci podręcznej. Brzydki, ale może działać –