gpt4 book ai didi

ruby-on-rails - 基于参数的Ruby on Rails实例变量缓存

转载 作者:行者123 更新时间:2023-12-03 16:05:40 26 4
gpt4 key购买 nike

我将用户的其他数据存储在user_data表中,当我使用定义的关联来检索该数据时,实际上是使用Ruby实例变量缓存将其缓存。

def user_data(user_id)
@user_data || = User.find(user_id).data
end

但是实例变量 @user_data只会在第一次为nil时才分配值,一旦它为用户保存数据,就说user_id等于1,当我在此方法中传递user_id 2时,它将为user_id 1返回数据,因为它将没有为其分配新值,所以我的问题是如何根据函数的参数缓存其值。

最佳答案

看看Caching with Rails guide。 Rails可以在从整个页面缓存到片段缓存的多个级别上缓存数据,我强烈建议您阅读所有页面,以便做出明智的选择。

对于低级缓存,您可以执行以下操作:

@user_data = Rails.cache.fetch("user_#{user_id}", expires_in: 1.hour) do
User.find(user_id).data
end

默认情况下,Rails将缓存存储在磁盘上,但是您可以设置memcache,内存存储等。

关于ruby-on-rails - 基于参数的Ruby on Rails实例变量缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33365744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com