作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试将 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/
我是一名优秀的程序员,十分优秀!