Powered by SmartDoc

CKComponent

コンポーネントは再利用が可能です。コンポーネント内に別のコンポーネントをネストすることができます。バインディングファイルにて、エレメントの代わりにコンポーネントを指定してください。

OtherComponent : MainPage {}

コンポーネントはエレメント属性を持ちません。その代わりに、インスタンス変数を属性として扱うことができます。

class MainPage < CKComponent
  attr_accessor :title
end
OtherComponent : MainPage {
  title = "Example for CKComponent";
}

上記の例では親コンポーネントがMainPageコンポーネントをネストし、その属性としてtitleを設定しています。

title属性はMainPageコンポーネントのインスタンス変数であるため、文字列"Example for CKComponent"が代入されることになります。

CKPartsMaker

コンポーネントは単独で使うこともネストすることもできますが、各コンポーネントを構成する「部品」としてネスティングのみに使うコンポーネントには単独表示させたくないことがあります。このような場合にはCKPartsMakerモジュールを使います。

CKPartsMakerはコンポーネント単体で表示を行わないためのモジュールです。このモジュールをインクルードしたコンポーネントは、単独表示のリクエストが来ると代わりのページを表示します。部品コンポーネントは、ほかのWebページコンポーネントと区別するため名前の最後に"Parts"や"Component"などとつけるといいでしょう。

CKPartsMakerモジュールのオブジェクト属性
オブジェクト属性 説明
substitute_page 代替ページ。指定しないときはメインページを表示する。