2016-11-18 80 views
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 %> 

截图

enter image description here

+0

您正在使用什么会话存储策略?无论如何,不​​要指望能够从浏览器访问会话内容,内容并不总是在浏览器中,如果是,它们将被加密以防止人们查看它或更改的东西。 –

+0

不确定,我使用的是默认的rails 5策略。我阅读[博客文章](http://www.justinweiss.com/articles/how-rails-sessions-work/),并发现这个[rails guide](http://guides.rubyonrails.org/security.html ),似乎它可能是很好的阅读来教育自己更多:)我认为会话存储在浏览器中,它看起来只是存储的cookie,所以它比我原本认为的更复杂 – mbigras

+0

有时cookie是整个会话,有时它只是一个引用存储在服务器端的ID。无论哪种情况,cookie都会被加密以防止篡改。 –

回答

1

正如哈特尔的Rails Tutorial描述的会话哈希加密,所以你将无法从t以纯文本查看它他浏览器。