【问题标题】:Rails Redis Cache stores empty information out of methodRails Redis Cache 存储方法外的空信息
【发布时间】:2023-03-15 02:10:01
【问题描述】:

我的 user.rb (model) 有以下实例方法:

  def points_last_seven_days
    last_seven_days_hash_raw = self.reports.group_by_day(series: true) { |r| r.created_at }
    out = {}
    last_seven_days_hash_raw.each do |day, reports|
      out[day.to_s] = reports.last.bullets
    end
    out
  end

当我运行 User.first.points_last_seven_days 时,一切正常,正如预期的那样,我得到了一个带有数据的哈希。

现在是棘手的部分。 我有一个缓存模块将用户加载到 redis 中。

为此我使用,除其他外:

    def make_cacheable_strings
      output_array = []
      get_users_for_status.each do |user|
        output_array << user.to_json(methods: USER_CACHED_METHODS)
      end
      output_array
    end

我的USER_CACHED_METHODS如下:

  USER_CACHED_METHODS = [
    ...,
    :points_last_seven_days
  ]

重点是:User.last.method_name = 正确的数据
CachedUser["method_name"] (json redis) = {} // 空哈希...

发生了什么?
谢谢

【问题讨论】:

    标签: ruby-on-rails caching redis to-json


    【解决方案1】:
      def points_last_seven_days_json
        self.points_last_seven_days.to_json
      end
    

    我试图注入的哈希是一个对象,而不是一个字符串。

    【讨论】:

      猜你喜欢
      • 2012-05-30
      • 1970-01-01
      • 2019-04-01
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      相关资源
      最近更新 更多