====== ウィジェットの追加/削除 ======
ウィジェットは、動的に追加・削除が可能です。\\
アクションごとに必要なパラメータが変わる場合は、この方法によって動的にウィジェットを増減させて対応します。
追加
@form.add_widget( AlText.new( "fax", :label=>"ファックス" ) )
削除
@form.delete_widget( "fax" )
===== 既存フォームから必要なウィジェットのみのフォームを再構成 =====
コンストラクタで作成したフォームから、そのアクションに必要な最小限のフォームを再構成する場合は、以下の方法が使えます。
def initalize()
@form = AlForm.new(
AlText.new( "first_name", :label=>"名" ),
AlText.new( "family_name", :label=>"姓" ),
AlText.new( "address", :label=>"住所" ),
AlText.new( "tel", :label=>"電話" ),
)
end
def action_index()
# 名,姓のみのフォームを再構成
list = [ :first_name, :family_name ]
@form = AlForm.new( list.map! { |k| @form.widgets[k] } )
...