Rendering unique cached page per user in Fragment Caching

Hi,

My app has devise authentication for every user. I integrated fragment
caching
for one of my views which is accessible only on sign-in.

The cached page saved by one user is accessible by another user. How can
I
implement a unique key based caching so that cached pages are unique for
every user?

I read about some caching methods below but not sure how to
create/retrieve
a unique cached page.

http://api.rubyonrails.org/classes/ActionController/Caching/Fragments.html

Thanks.

Regards,
Ankur

On 23 December 2014 at 13:42, Ankur K. [email protected]
wrote:

Hi,

My app has devise authentication for every user. I integrated fragment
caching for one of my views which is accessible only on sign-in.

The cached page saved by one user is accessible by another user. How can I
implement a unique key based caching so that cached pages are unique for
every user?

Include the user id in the key string.

Colin

Thanks Colin for your reply. Can you please let me know how can user_id
be
included in caching key string? I have following implementation of
caching
as of now.

app/views/employee/index.html.erb

<% cache "employee_list "do %>
List of all employees:
<% Employee.all.each do |e| %>
<%= link_to e.name, employee_url(e) %>
<% end %>
<% end %>

app/sweepers/employee_sweeper.rb

class EmployeeSweeper < ActionController::Caching::Sweeper
observe Employee
def sweep(employee)
expire_fragment(“employee_list”)
end
alias_method :after_create, :sweep
alias_method :after_update, :sweep
alias_method :after_destroy,:sweep
end

Devise “current_user” is accessible in all the above files.


Regards,
Ankur

On 30 December 2014 at 13:33, Ankur K. [email protected]
wrote:

Thanks Colin for your reply. Can you please let me know how can user_id be
included in caching key string? I have following implementation of caching
as of now.

app/views/employee/index.html.erb

<% cache "employee_list "do %>

Something like
cache “employee_list #{current_user.id}” do
so the user id is included in cache key. Similarly for expire.

Colin