prog_cgi:セッション変数
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン | 次のリビジョン両方とも次のリビジョン | ||
prog_cgi:セッション変数 [2019/03/09 11:43] – [使い方] hirohito | prog_cgi:セッション変数 [2019/03/09 11:52] – hirohito | ||
---|---|---|---|
行 136: | 行 136: | ||
{{: | {{: | ||
+ | 確認画面で「いいえ」を選択すると、最初の入力フォームに戻ります。その際、コントローラの action_cancel では、セッション変数から@formへ値を戻しているので、表示されるフォームには入力した値が最初から入っている状態になります。 | ||
+ | ここで説明したセッション変数は、コントローラローカルセッション変数といい、個々のコントローラ内でのみ有効なセッション変数です。つまり異なるコントローラからはアクセスできませんので、他のコントローラと名前がぶつかることを心配する必要がありません。 | ||
+ | コントローラをまたいで値を受け渡すことができるグローバルセッション変数もあります。 | ||
+ | 詳しくは、[[alcgi: | ||
+ | |||
+ | ====== リクエストをまたぐ一時的なメッセージ ====== | ||
+ | |||
+ | httpリクエストをまたぐ一時的なメッセージは意外とよく使うので、たとえばRailsではflashという専用の機能が実装されています。 | ||
+ | |||
+ | Aloneでは、そのような難しい機能は実装せず、もっと簡単に考えています。 | ||
+ | |||
+ | ===== 方法 ===== | ||
+ | |||
+ | あるアクションにおいて処理後にリダイレクトし、リダイレクト先のページで処理の結果を表示する例。 | ||
+ | |||
+ | <code ruby> | ||
+ | def action_one() | ||
+ | session[: | ||
+ | Alone:: | ||
+ | end | ||
+ | | ||
+ | def action_two() | ||
+ | AlTemplate.run( " | ||
+ | end | ||
+ | </ | ||
+ | |||
+ | テンプレートでflash_msg1を表示し、同時に消去します。 | ||
+ | |||
+ | <code html> | ||
+ | <p> <%=h session.delete(: | ||
+ | </ | ||
- | コントローラローカルセッション変数は、個々のコントローラ内でのみ有効なセッション変数です。異なるコントローラからはアクセスできません。一つのアプリケーション内でグローバルにアクセスできるAlSessionによるセッション変数とは異なり、スコープがコントローラ内のみに限定されます。他のコントローラと名前がぶつかることを心配する必要がありません。 |
prog_cgi/セッション変数.txt · 最終更新: 2019/03/09 11:54 by hirohito