0

バックグラウンド

2 つのドロップダウン オプション A と B を含むビュー ページ (abc.html.haml) があります。

デフォルトでは、controller#index アクション (ブラウザの URL 経由で呼び出される) を押すと、ページに A リストのレコードが読み込まれます。

次に、ドロップダウンメニューを選択すると、同じページにリスト B のレコードを入力する Ajax 呼び出しがあります。ドロップ ダウン オプションを使用して、状態 A から状態 B に移動したとします。

問題

一度、ページにリスト B のレコードが取り込まれました。今、ページを更新すると、ドロップダウン メニューにはまだ同じ状態「B」が保持されますが、ページの更新時にコントローラからロードされるレコードのデフォルト セットは次のとおりです。リストA(したがって、ドロップダウンメニューの状態は「A」でなければなりません)。

これを回避する方法についての情報はありますか?

ありがとう。

4

1 に答える 1

1

あなたの問題を完全に理解しているかどうかはわかりませんが、考えられるいくつかのオプションは次のとおりです。

  • ドロップダウンで選択したときに URL を変更するには、javascript を使用します。ドロップダウンの状態を反映できるパラメーターを URL に追加し、ページの読み込み時にこれらを解析できます。

  • 制御する更新ボタンをユーザーに提供すると、更新時に情報をコントローラーに送り返して、正しいデフォルトをロードできます。

  • 現在のユーザーの選択内容を、ユーザーが選択したときに ajax 呼び出しを介してデータベースに保存します。あなたのアプリのコンテキストがわからないので、これがどれほど実現可能かわかりません。次に、それらが存在する場合、明らかにページの読み込み時にこれらを読み込むことができます。

ただし、最も簡単なオプションは、ページの更新時にすべてのコントロールをリセットすることです。ユーザーはとにかくその動作を期待していると思います。

于 2012-08-08T14:26:58.507 に答える