明らかな理由から、セッションではなくRedisを使用したいと思います。
古い国コード:
session[:some_stuff] = @my_objects.map(&:id)
じゃあ後で :
session[:some_stuff].each{|obj| ..
または、
このIDのマップをredisに保存したいと思います。そして、それらを取得します。他のWebリソースに関連するものが見つかりません。何か案は?
明らかな理由から、セッションではなくRedisを使用したいと思います。
古い国コード:
session[:some_stuff] = @my_objects.map(&:id)
じゃあ後で :
session[:some_stuff].each{|obj| ..
または、
このIDのマップをredisに保存したいと思います。そして、それらを取得します。他のWebリソースに関連するものが見つかりません。何か案は?
Redis接続/アダプターの設定方法については書いていませんが、基本的SADD
には、Redisセットに要素を追加し、SMEMBERS
すべての要素を取得するためのものです。
私はいくつかの問題を解決するだろうと思って宝石を使おうとしましredis-store
たが、うまくいかないことがわかりました。おそらく安定した1.0.0バージョンですら。
だからこれは私がしたことであり、それは非常にうまくいきました:
def first_method
$redis = Redis.new
@customers.map(&:id).each{|c|$redis.sadd('export', c)}
def other_method
@customers = []
$redis.smembers('export').each{|c|@customers << Customer.find(c)}
注:
1つのメソッドで$redisが1回だけ識別される必要があります。次に、MVCアーキテクチャの外部のステートレスな場所に保存されます。