Class | CGIKit::Context |
In: |
docs/rdoc_ja.rb
|
Parent: | Object |
CGIKit::ContextはコンテキストIDを扱うクラスです。 コンテキストIDとはコンポーネントやエレメントにつけられるIDで、 フォームデータやアクションを処理する際に コンポーネント・エレメントを特定するために使われます。
コンテキストIDはURLの最後に付加されます。 "app.cgi/c/027ef63d3e72f4f2/0.7.0" の場合、"0.7.0" がコンテキストIDです。
フォーム関連のエレメントでは、 name 属性を省略すると name 属性値にコンテキストIDが設定されます。 属性値を指定すると name 属性にコンテキストIDが設定されませんが、 リクエスト・レスポンスループ時にコンテキストIDを補完して実行するので、 name 属性も自由に設定することができます。
コンテキストIDは、ピリオドで区切ったコンポーネントIDと エレメントIDから構成されます。 先頭の桁がコンポーネントIDで、以降の桁がエレメントIDです。 例えば "1.5.4" の場合、 1 がコンポーネントIDで、 5 と 4 がそれぞれエレメントIDになります。
コンテキストIDは内容を含むエレメントがあると桁が増えます。 内容を含むエレメントとは、RepetitionやConditional、Linkなどです。 "1.5.4" の場合なら、間の 5 が内容を含むエレメントのIDということになります。
コンテキストIDの操作については DynamicElement も参照してください。
コンポーネントIDは、ページ表示に使うComponentオブジェクトのIDです。 アクションメソッドで nil を返すと、ページ表示に使った Componentオブジェクトが再度使われるので、コンポーネントIDは変わりません。 アクションメソッドでComponentオブジェクトを生成したり、Linkのpage属性を使うと 新しいコンポーネントIDが発行されます。
コンポーネントで使うエレメント、DynamicElementオブジェクトのIDです。 同じ設定のエレメントが複数回展開されても、エレメントIDは重複しません。 例えばコンテキストIDが "0.1" のRepetitionでTextFieldを3回繰り返すと、 生成されるコンテキストIDはそれぞれ "0.1.1", "0.1.2", "0.1.3" になります。
SEPARATOR | = | "." | コンテキストIDの各要素を区切る文字。 |
in_form | -> | in_form? |
application | [RW] | Applicationオブジェクト。 |
component | [RW] | エレメントと同期するコンポーネント (Componentオブジェクト) 。 リクエストされたページか、サブコンポーネントになります。 |
in_form | [RW] | コンテキストがFormエレメント内で実行されているかどうか。 |
request | [RW] | Requestオブジェクト。 |
request_handler_key | [RW] | リクエストハンドラキー |
response | [RW] | Responseオブジェクト。 |
sender_id | [RW] | リクエストを送信したコンテキストID。 |
このメソッドを実行したエレメントにアクションが要求されていれば真を返します。 主に invoke_action で使われます。
例えばコンテキストIDが "3.2" のLinkエレメントがクリックされたとき、 リクエスト・レスポンスループ中のLinkエレメントの コンテキストIDが一致すれば真を返します。
See Also: Element#invoke_action
Ajaxアクション用のURLを生成します。
コンテキストIDに string を追加します。 コンテキストIDが "0.1" のときに "MyName" を追加すると "0.1.MyName" になります。
See Also: append_zero, increment, delete, delete_all
コンテキストIDに 0 を追加します。 コンテキストIDが "0.1" なら "0.1.0" になります。
See Also: append, increment, delete, delete_all
URLを生成します。
key: | リクエストハンドラキー。 |
path: | セッションID、コンテキストIDの次に付加する文字列。 |
query: | クエリ文字列。 |
is_secure: | 真であれば、 https で始まるURLになります。 |
port: | ポート番号を指定します。 |
See Also: url, Application#url
コンポーネントアクション用のURLを返します。 このURLをクリックすると、 このメソッドを実行したエレメントを指定することになります。 例えばLinkエレメントでは action属性が指定された場合に、 このメソッドでリンクのURLを生成します。
query: | クエリ文字列。 |
is_secure: | 真であれば、 https で始まるURLになります。 |
See Also: direct_action_url, Element#invoke_action, Element#append_to_response, Component, Link, Submit
コンテキストIDを返します。 digit が真であれば、数値だけで構成されたコンテキストIDを返します。
See Also: context_id=
このメソッドを実行したエレメントがフォーム内にあり、 かつそのフォームがリクエストされていれば真を返します。 in_form と異なるのは、フォームが表示されただけでは真にならないことです。 フォームが表示され、送信ボタンが押されると真になります。 フォーム要素のデフォルト値を操作するときに使われます。
See Also: in_form?
ダイレクトアクションクラス action_class の action_name メソッドを 呼び出すURLを返します。
query: | クエリ文字列。 |
sid: | 真であれば、 https で始まるURLになります。 |
See Also: DirectAction
コンテキストIDの最後の桁の数値を 1 増やします。 string を指定すると、最後の桁が string に変更されます。
See Also: append, delete, delete_all
RSSアクションクラス action_class の action_name メソッドを 呼び出すURLを返します。
See Also: RSS::RSSAction