Caching Rails 4缓存导致链接中的id不正确

Caching Rails 4缓存导致链接中的id不正确,caching,ruby-on-rails-4,turbolinks,Caching,Ruby On Rails 4,Turbolinks,我在我的网站上添加了一堆缓存调用,结果非常糟糕。例如: User.all.each do |user| cache user do link_to user.name, user end end 链接将指向错误的用户页面 或者 User.all.each do|User| 缓存用户do 结束 结束 在上面的例子中,我有一个用户id的隐藏字段。但是,由于缓存,用户id不是预期的用户。因此,小部件是为错误的用户创建的 这是涡轮链路问题吗?缓存似乎很容易在r

我在我的网站上添加了一堆缓存调用,结果非常糟糕。例如:

 User.all.each do |user|
    cache user do
        link_to user.name, user
    end
 end
链接将指向错误的用户页面

或者

User.all.each do|User|
缓存用户do
  • 结束 结束
    在上面的例子中,我有一个用户id的隐藏字段。但是,由于缓存,用户id不是预期的用户。因此,小部件是为错误的用户创建的

    这是涡轮链路问题吗?缓存似乎很容易在rails中实现,但是……我一定是做错了什么。我已经看过关于这件事的文件了


    为什么迭代中的缓存会导致链接使用错误的id?

    当您在User.all上循环使用each函数时,您会多次调用缓存方法,说它应该将缓存片段保存为“User”

    尝试调用缓存块中的每个循环:

    cache 'user-widgets' do
       User.all.each do |user|
           link_to user.name, user
       end
    end
    

    它在没有缓存块的情况下可以工作吗?它可以…如果我删除缓存块,一切都会恢复正常并正常工作。
    cache 'user-widgets' do
       User.all.each do |user|
           link_to user.name, user
       end
    end