1
我在会话散列中存储了一个计数器,每当我在Store
控制器中调用index
动作时,计数器就会增加。Chrome开发工具中的会话散列在哪里?
我在Store
视图中打印出来,如代码和屏幕截图所示。
我知道我可以通过删除显示在屏幕快照中的cookie来“重置计数器”。而且我知道我在服务器上打印会话散列。但是,我如何在chrome开发工具中看到会话散列?
store_controller.rb
class StoreController < ApplicationController
def index
@products = Product.order(:title)
session[:counter] ||= 0
session[:counter] += 1
end
end
店/ index.html.erb
<p id="notice"><%= notice %></p>
<h1>Your Pragmatic Catalog</h1>
<p><%= session[:counter] %></p>
<% p session %>
<% cache @products do %>
<% @products.each do |product| %>
<% cache product do %>
<div class="entry">
<%= image_tag(product.image_url) %>
<h3><%= product.title %></h3>
<%= sanitize(product.description) %>
<div class="price_line">
<span class="price"><%= number_to_currency(product.price) %></span>
<%= button_to 'Add to Cart', line_items_path(product_id: product) %>
</div>
</div>
<% end %>
<% end %>
<% end %>
截图
您正在使用什么会话存储策略?无论如何,不要指望能够从浏览器访问会话内容,内容并不总是在浏览器中,如果是,它们将被加密以防止人们查看它或更改的东西。 –
不确定,我使用的是默认的rails 5策略。我阅读[博客文章](http://www.justinweiss.com/articles/how-rails-sessions-work/),并发现这个[rails guide](http://guides.rubyonrails.org/security.html ),似乎它可能是很好的阅读来教育自己更多:)我认为会话存储在浏览器中,它看起来只是存储的cookie,所以它比我原本认为的更复杂 – mbigras
有时cookie是整个会话,有时它只是一个引用存储在服务器端的ID。无论哪种情况,cookie都会被加密以防止篡改。 –