Ich versuche, redis als Caching-Layer zwischen meiner App und einer postgresql db zu verwenden. Ich habe das vorher noch nie gemacht, also bitte bare mit mir.Rails 4, Redis-Modell-Caching, wann rufen Sie fetch_items in items_helper auf?
Siehe unten, meine Routen, items_controller, items_helper Dateien. Ich bin verwirrt darüber, wie # fetch_items im items_helper aufgerufen werden soll.
Derzeit rendere ich Jbuilder-Vorlagen von allen meinen Controller-Aktionen. Ich muss diese Funktionalität behalten.
Routen
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
großartige Idee, ich werde das versuchen – matthewalexander