Powered by SmartDoc

他のコンポーネントにデータを渡す

「フォームから入力されたデータを処理し、次のページで入力したデータの確認を行う」など、他のコンポーネントに必要なデータを渡さなければならないことがあります。このようなときはデータを渡すコンポーネントにアクセサを定義しておき、そのアクセサを使ってデータを設定します。

例として、MainPageコンポーネントでユーザーの名前を入力し、HelloPageコンポーネントでその名前を表示するアプリケーションを考えます。MainPageにはユーザー名を入力するためのテキストフィールドがあり、インスタンス変数user_nameにデータが代入されるものとします。

HelloPageではMaiPageで入力されたユーザー名を表示します。MainPageからデータを受け取るためのアクセサuser_nameを定義します。

class HelloPage < CKComponent
  attr_accessor :user_name
end

MainPageでは入力されたユーザー名をHelloPageに渡します。

class MainPage < CKComponent
  def set_user_name_to_hellopage
    # HelloPageを生成し、ユーザー名を渡す

    hellopage = page(“HelloPage”)
    hellopage.user_name = @user_name

    # HelloPageを表示する

    return hellopage
  end
end