ActiveRecordのデータベースインターフェイスとよく似た、データの入出力を管理するためのクラスがあると考えられます。このデータをセッションに保存することもできますし、memcacheやredisサーバーを使用する方が良いでしょう。ここに例があります。
class SearchParam
def initialize(id, model, query_string = nil)
@id = id
@model = model
@query_string = query_string
end
def save
# write @query_string to redis using `key`
end
def self.find(id, model)
instance = new(id, model)
instance.query_string = Redis.get(instance.key)
return instance
end
def query_string
@query_string
end
def query_string=(qstring)
@query_string=qstring
end
def key
"#{@id}-#{model}"
end
end
私は正確なredisコマンドと構文を忘れていますが、これまでに作業したことがあれば基本的な書き込みと読み込みができます。 Memcacheまたはセッションも機能します。次に、ユーザー/モデルのコンボのクエリ文字列のハッシュ表現を簡単に保存し、検索フォームで使用する検索パラメータを設定できます。
簡単に彼らが最初に(提出一切のparamsが存在しない場合)、インデックスページへ
@search_params = SearchParam.find(session.id, model).query_string
を取得したり、あなたがに基づいて結果を返すときに、新しいQUERY_STRINGを保存する際にコントローラでセッションIDに基づいて検索しますインデックスアクションでフォームを送信する
SearchParam.new(session.id, model, params).save