0

ホテルの検索を処理するコントローラーがあります (RoR を使用しますが、リクエストをリッスンするサーバーがあると仮定しましょう)。デフォルトの検索は都市によるものであるため、都市を指定すると、コントローラーはその都市のすべてのホテルを検索します。

ビューがレンダリングされると、結果をフィルタリングできるフォームができます。私の質問は:

ユーザー設定 (フィルターと都市) の現在の状態を保存して、コントローラー アクションに再度送信するにはどうすればよいですか?

したがって、ユーザーがsort by priceをクリックし、AJAX を介して、特定の都市 (以前に選択した) のホテルを価格順で取得したいとします。彼が以前に選択した都市をどのように知ることができますか? 隠しフィールドに保存する必要がありますか、それとも適切な方法は何ですか?

注文を価格でフィルタリングした後、ユーザーが高級ホテルのオプションを選択した場合、同じ疑問が生じます。特定の都市ごとにホテルを取得する必要があり、価格と高級品のカテゴリで並べ替えます。検索の以前の状態をどこに保存すればよいですか?

ありがとう

4

2 に答える 2

0

以前の状態は、JavaScript変数または非表示のフォームフィールドに簡単に保存できます。どちらでも問題ありません。正しい選択は、機能やパフォーマンスの問題よりもコードの設計に依存します。また、特定のケースにどちらの方法が適しているかわからない場合でも、おそらく問題ではないため、心配する必要はありません。

于 2012-07-29T12:29:42.160 に答える
0

ユーザーがsortByを押すたびにすべての並べ替えオプションを送信できるため、コントローラーが都市と価格を取得するたびに、SQLは「.. WHEREcity ='city1' ORDER BY price ASC、anotherOptionDESC」のようになります。ユーザーあたりの結果:最適な場所はCookieだと思います。また、結果をCookieのみで並べ替え、smthを取得した場合にのみ変更することもできます。ajax呼び出しからの新規。

于 2012-07-29T12:36:22.230 に答える