質問: 2 %> <%end%> ```
回答: まず、rails(サーバー)側のグローバル変数で持つという発想が間違っています。 というのも、それでは複数人が同時にアクセスした場合にそのうちの誰かが回答する事で他の人に影響があるからです。 また、サーバーが複数台あったり複数のサーバープロセスが動いている場合などで 結果がうまく取得できない場合も考えられます。 次に、HTMLについて誤解があるようです。 サーバーはerbを元にHTMLを生成し、 ブラウザが生成されたHTMLを元にユーザーに表示しています。 なので、ユーザーがブラウザでページを見ている際にはRubyは既に動作を終了し 次の要求を待っています。 #### どうやるか? まず、`$menuaka`変数をサーバー・ブラウザどちらが保持するか そもそも、保持する必要があるのか?を検討します。 たとえば、A・Bどちらかを選び、その結果として一度だけ表示するのならば変数として保持する必要はないので 「どちらを選んだか」という情報をサーバー側に送ればいいのです。 そうではなく、複数回(たとえばトップページを表示するたびに)表示する必要があるのならば 「いつまで情報を保持するか」「サーバーに送信する必要はあるか」「対象ブラウザ」などを考慮し sessionやcookieまたはsessionStorageやlocalStorageを採用することになります