htmlフォームタグ生成
AlFormとAlWidgetの組み合わせは、htmlフォームの構造をそのまま反映させることが多いので、逆にAlFormからhtmlを生成するほうが楽な場合も多くあり、そのための機能を備えています。
@form.make_tiny_form()
フォーム全体のhtmlタグを自動生成します。
その際、以下のアトリビュートがformタグのアトリビュートとして使われます。
@method – formタグのmethodアトリビュート。POST または、GET。
@action – formタグのactionアトリビュート。make_uriメソッドで作ったURIを指定する。
@form.make_tag(ウィジェット名)
ウィジェット名(文字列もしくはシンボル)で示されるウィジェットのhtmlタグを自動生成します。
@form-:ウィジェット名
ウィジェット名で示されるウィジェットの持つ値のみを生成します。テンプレート中で以下のように使います。
<input name="text1" type="text" value="<%=h @form-:text1 %>">
@form.checked( ウィジェット名, 値 )
チェックボックス等の場合は、選ばれているものだけにchecked属性をつけます。テンプレート中で以下のように使います。
<input name="radio1" type="radio" value="r1" <%= @form.checked( :radio1, "r1" ) %> > <input name="radio1" type="radio" value="r2" <%= @form.checked( :radio1, "r2" ) %> >
htmlフォームテンプレートの生成
rhtmlテンプレートファイルの雛形を、AlFormオブジェクトから生成する機能があります。
def action_index() puts @form.generate_form_template() end
このように、generate_form_templateメソッドの出力を表示するように記述し、ブラウザでアクセスします。
ブラウザにテンプレートファイルの雛形が表示されるので、その *ソースコード* を実際のテンプレートとして使います。
(表示された内容は、恐らくブラウザによってHTMLの解釈がされてしまうので、必ずソースコードを使います)
自動生成メソッド
generate_form_template()
htmlフォームを表示するためのテンプレートを生成する(上述)。
generate_sheet_template()
値をシート型式で表示するためのテンプレートを生成する。
generate_list_template()
値をリスト形式で表示するためのテンプレートを生成する。
generate_sql_table()
SQLの "create table" DDLを生成する。