ユーザ用ツール

サイト用ツール


samples:hello

ハローワールド

概要

webブラウザに "Hello world." と表示されるアプリケーションです。

パス

examples_controller

構成ファイル

ファイル名 説明
index.rb コントローラ使用のためのエントリポイント。
hello/index.rhtml ビュー。webブラウザに送信するHTMLを生成するための雛形です。
hello/main.rb コントローラ。webブラウザからの要求に対するアクションが定義されています。

使用ライブラリ

ライブラリ名 説明
al_controller コントローラクラス。コントローラアプローチで開発を行うために必要。
al_template テンプレートマネージャ。レスポンスとしてwebブラウザに送信するためのHTMLを生成します。

詳細

Aloneのコントローラアプローチによるプログラムのサンプルです。各種処理を行うコントローラと、webブラウザに送るHTMLの雛形を定義するテンプレートに別れています。

hello/main.rb (コントローラ)

エントリポイントファイル index.rb と同一ディレクトリにあるディレクトリ hello は、コントローラおよび関連するテンプレートなどを格納するためのディレクトリです。ディレクトリ名がそのままコントローラ名として扱われます。

コントローラは、コントローラ名に対応するディレクトリの中に main.rb というファイル名で作成します。その中でAlControllerクラスにメソッドを追加することでコントローラのアクションを追加することができます。アクションに対応するメソッドは、名前が action_ で始まります。本サンプルでは action_index メソッドをAlControllerクラスに追加することで、indexという名称のアクションを追加しています。

なお、indexという名称のアクションはデフォルトアクションと呼ばれ、URLでアクション名を指定せずにコントローラを呼び出した場合はデフォルトアクションが実行されます。

main.rb
require 'al_template'
#
#
#
class AlController
 
  #
  # デフォルトアクションの定義
  #
  def action_index()
    @my_message = "Hello world."
 
    AlTemplate.run( 'index.rhtml' )
  end
end

action_indexメソッド

AlTemplete.runメソッドを実行することで、あらかじめ定義されたテンプレートindex.rhtmlに従ってHTMLを生成しクライアントに返しています。

インスタンス変数 @my_message にセットした文字列 "Hello world." は、テンプレートファイル index.rhtml 内で参照されます。

hello/index.rhtml (テンプレート)

アプリケーションからwebブラウザに送信されるHTMLを生成するための雛形です。コントローラ内のアクションでAlTemplate.runを呼び出すと、テンプレートにしたがってHTMLが生成されます。

<%= header_section %>
  <title>Test</title>
 
<%= body_section %>
  <p><%=h @my_message %></p>
 
<%= footer_section %>

インスタンス変数の参照

コントローラ内で宣言したインスタンス変数の値が参照できます。本サンプルでは main.rb 内の index アクションで値がセットされている @my_message 変数を参照しています。これにより、 @my_message に格納された値がHTMLに埋め込まれます。

これらのメソッドは、HTMLのヘッダ部、ボディ部、フッタ部で使われる汎用的なHTMLを出力するものです。テンプレートの記述を簡単にできます。出力されるHTMLは、 Alone の設定ファイル al_config.rb 内で定義されています。

もちろん、これらのメソッドを使わずに、直接テンプレート内にヘッダ部などのHTMLを記述してもかまいません。

samples/hello.txt · 最終更新: 2011/07/13 16:24 by maeda