Ruby on rails 一个片段如何缓存带有会话信息的注释?
一个片段如何缓存带有会话信息的注释?例如:Ruby on rails 一个片段如何缓存带有会话信息的注释?,ruby-on-rails,ruby-on-rails-3,caching,Ruby On Rails,Ruby On Rails 3,Caching,一个片段如何缓存带有会话信息的注释?例如: <% cache "song_#{@song.id}_comments" do %> <ul> <% @comments.each do |comment| %> <li class="clearfix"> <p><%= comment.comment %></p> &l
<% cache "song_#{@song.id}_comments" do %>
<ul>
<% @comments.each do |comment| %>
<li class="clearfix">
<p><%= comment.comment %></p>
<% if can? :destroy, comment %>
<span>·</span><%= link_to 'delete', comment_path(comment), :confirm => 'Are you sure?', :method => :delete, :remote => true %>
<% end %>
</li>
<% end %>
</ul>
<% end %>
如果用户拥有注释,则会显示删除链接。但因为,这是缓存的。它不应该向其他用户显示。我认为,除非您将该信息作为密钥的一部分,否则片段缓存中不可能有基于会话的逻辑,这会破坏缓存的目的 一种可能的方法是使用基于客户端的逻辑来动态添加删除链接(如果注释为用户所有)。
例如,可以为每个注释嵌入一个隐藏的\u字段-owner\u id。然后,对于每个渲染,除了具有所有者id的缓存注释外,还可以有另一个隐藏字段-当前用户id。JS然后可以为用户是所有者的所有注释添加删除链接。PS。我想我应该共享。有一部分是关于你在JS中描述的内容: