Basic Caching with Rails
Bài hướng dẫn này sẽ hướng dẫn các bạn tăng tốc rails với caching. Rails Caching cơ bản Mặc định, rails chỉ cung cấp Fragment caching, còn nếu bạn muốn sử dụng page và action caching thì cần phải thêm gem actionpack-page_caching và actionpack-action_caching vào gem file. Thực hiện bật caching ...
Bài hướng dẫn này sẽ hướng dẫn các bạn tăng tốc rails với caching.
Rails Caching cơ bản
Mặc định, rails chỉ cung cấp Fragment caching, còn nếu bạn muốn sử dụng page và action caching thì cần phải thêm gem actionpack-page_caching và actionpack-action_caching vào gem file. Thực hiện bật caching trong config/environtments/*.rb
config.action_controller.perform_caching = true
1.1 Page caching
Page caching là một kỹ thuật của rails cho phép yêu cầu một trang được tạo đầy đủ bởi webserver mà không phải đi vào entrie của Rails stack. Xem thêm tại: page caching
1.2 Action caching
Page caching không thể sử dụng với các action có before filters. Chẳng hạn như trang đăng nhập, vì có yêu cầu xác thực. Xem thêm tại: action caching
Fragment caching
Khi các thành phần khác nhau của trang web cần được caching và hết hạn một cách riêng lẻ, ta có thể sử dụng fragment caching. Fragment caching cho phép một fragment của view logic được bao trong một khổi cache.Ví dụ:
<% @products.each do |product| %> <% cache product do %> <%= render product %> <% end %> <% end %>
Nếu bạn muốn sử dụng cache fragment dưới một điều kiện nào đó. Ta có thể sử dụng cache_if hoặc cache_unless.
<% cache_if admin?, product do %> <%= render product %> <% end %>
1.3 Russian Doll Caching
Các fragment caching được lồng trong các fragment caching khác. Ví dụ: Ta có một view sau:
<% cache code do %> <%= render codefoods %> <% end %>
mà nó sẽ render view sau:
<% cache game do %> <%= render game %> <% end %>