Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 缓存时忽略某些属性_Ruby On Rails - Fatal编程技术网

Ruby on rails 缓存时忽略某些属性

Ruby on rails 缓存时忽略某些属性,ruby-on-rails,Ruby On Rails,在Rails 6应用程序中,我将向用户列表添加一些缓存 目前,我的代码看起来像 # users/index.html.erb <table> <tbody> <%= render @users %> </tbody> </table> # users/_user.html.erb <% cache(user)do %> <tr> <td> <%= user.n

在Rails 6应用程序中,我将向用户列表添加一些缓存

目前,我的代码看起来像

# users/index.html.erb

<table>
  <tbody>
    <%= render @users %>
  </tbody>
</table> 

# users/_user.html.erb

<% cache(user)do %>
<tr>
  <td>
    <%= user.name %>
   </td>
   <td>
     <%= user.status %>
   </td>
</tr>
当包含在关键多个属性中时,这也是首选方法吗?即

   <% cache [user.name, user.status, user.email, user.role, user.whatever] do %>


此外,假设我想缓存整个表。我应该用哪把钥匙
@users
实际上不起作用。

渲染
@users
集合时,可以添加
缓存:true


我真的看不出在这种优化级别上优化单个用户缓存有什么意义(用户修改密码或其他不重要属性的频率有多高?)。我不认为没有这种优化会对您的性能产生真正的影响。你是测试过还是只想测试一下?如果不需要的话,不要过度设计,我打赌还有更好的东西需要优化,而且影响更大。

谢谢。用户将每3个月更新一次密码。这是一项监管要求。而其他属性几乎永远不会改变。防止每3个月查询1次听起来不值得这么做。就我个人而言,我不会这么做,这取决于你,但我认为在访问特定的用户缓存之前,你会有很多更好的地方来提高性能,产生更大的影响。
   <% cache [user.name, user.status, user.email, user.role, user.whatever] do %>