gpt4 book ai didi

ruby-on-rails - Redis模型缓存,什么时候调用items_helper中的fetch_items?

转载 作者:可可西里 更新时间:2023-11-01 11:20:19 25 4
gpt4 key购买 nike

我正在尝试将 Redis 用作我的应用程序和 PostgreSQL 数据库之间的缓存层。

请看下面,我的路线,items_controller,items_helper 文件。我对应该如何调用 items_helper 中的#fetch_items 感到困惑。

目前,我正在从我所有的 Controller 操作中渲染 jbuilder 模板。我需要保留此功能。

路线

Rails.application.routes.draw do
resources :users
resources :items
get 'users/:id/sold_items' => 'users#sold_items'
get 'categories/:id/available_items' => 'categories#available_items'

get 'performances/:view' => 'performances#show'

items_controller.rb

class ItemsController < ApplicationController
include ItemsHelper
# Returns full list of items
def index
@items = Item.all
end

# Returns details for a single item
def show
@item = Item.find(params[:id])
end
end

items_helper

module ItemsHelper

def fetch_items
byebug
items = $redis.get("items")
if items.nil?
items = Item.all.to_json
$redis.set("items", items)
end
@items = JSON.load items
end

end

最佳答案

您需要手动调用 fetch_items,因为不会自动调用此方法。鉴于代码,我想你可以替换

@items = Item.all

@items = fetch_items

使用 fetch_items 方法。

附言。 fetch_items 方法不会返回 Item 对象数组,只会返回哈希数组,因此您可能还需要调整代码的其他部分。

我建议在将 Redis 投入生产之前对其进行基准测试,以确定在这种特定情况下使用 Redis 是否更快。

关于ruby-on-rails - Redis模型缓存,什么时候调用items_helper中的fetch_items?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38426308/

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