====== todo_file ======
todoの追加・変更・削除を行います。
{{:samples:todo_file_index.png|}}
Alone添付の管理インターフェイスを使ってCRUDを簡単に実現するサンプルです。
本サンプルのプログラムの記述は以下に示すとおりAlFormオブジェクトとAlPersistFileオブジェクトの生成しか行っていません。これだけの記述で、データの登録・変更・削除、登録されたデータの一覧表示が実現できます。
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
#
# alone : web application framework for small embedded systems.
# Copyright (c) 2009-2010 Inas Co Ltd. All Rights Reserved.
#
# This file is destributed under BSD License. Please read the COPYRIGHT file.
#
require 'al_form'
require 'al_persist_file'
require 'al_mif'
DB_FILE = "data/todo.txt"
class AlController
##
# constructor
#
def initialize()
@form = AlForm.new(
AlInteger.new( "id", :foreign=>true ),
AlDate.new( "create_date", :label=>"登録日", :value=>Time.now.strftime( '%Y/%m/%d' ) ),
AlTextArea.new( "memo", :label=>"ToDoメモ", :required=>true ),
AlDate.new( "limit_date", :label=>"期限" ),
AlSubmit.new( "submit1", :value=>"決定",
:tag_attr=> {:style=>"float: right;"} )
)
# use file
@persist = AlPersistFile.connect( DB_FILE )
end
##
# デフォルトアクション
#
alias action_index action_list
end
===== 管理インターフェイス al_mif.rb =====
管理インターフェイス al_mif.rb は、データの追加・変更・削除・一覧表示を行う機能、いわゆるCRUDを提供するライブラリです。定型的な記述を行うことなく、CRUDアプリケーションをすばやく開発することができます。
===== 管理インターフェイスの使い方 =====
==== ライブラリの読み込み ====
管理インターフェイスを利用するには、al_mifおよびal_persist_*(データ永続化ライブラリ)を読み込みます。
al_mifは、al_persist_*で提供されるデータ永続化機能を利用して画面から入力されたデータを保存します。
require 'al_persist_file'
require 'al_mif'
==== AlFormオブジェクトとAlPersistオブジェクトの作成 ====
管理インターフェイスはCRUD機能を提供するために、インスタンス変数@formおよび@persistに格納されたAlFormオブジェクトとAlPersistオブジェクトを使用します。これらのインスタンス変数は、通常はAlController#initializeメソッド内で用意してください。
todo_fileサンプルでも、AlController#initializeメソッド内で以下のようにインスタンス変数にオブジェクトを格納しています。入力されたデータはデータベースではなくファイルに記録するため、@persistにはAlPersistFileオブジェクトを格納しています。
def initialize()
@form = AlForm.new(
AlInteger.new( "id", :foreign=>true ),
AlDate.new( "create_date", :label=>"登録日", :value=>Time.now.strftime( '%Y/%m/%d' ) ),
AlTextArea.new( "memo", :label=>"ToDoメモ", :required=>true ),
AlDate.new( "limit_date", :label=>"期限" ),
AlSubmit.new( "submit1", :value=>"決定",
:tag_attr=> {:style=>"float: right;"} )
)
# use file
@persist = AlPersistFile.connect( DB_FILE )
end
以上で管理インターフェイスを利用するための記述は完了です。必要なアクションがコントローラに追加され、AlFormオブジェクトで定義されているフォームとAlPersistオブジェクトで定義されている保存先を使ったCRUD機能が提供されます。
==== 管理インターフェイスによって追加されるアクション ====
管理インターフェイスによって以下のアクションが追加されます。ビューも一緒に提供されます。
^action_list|一覧表示アクション|
^action_create|新規登録フォーム表示アクション|
^action_create_submit|新規登録確定アクション|
^action_update|更新フォーム表示アクション|
^action_update_submit|更新確定アクション|
^action_delete_submit|削除確定アクション |
^action_delete|削除確認画面表示アクション|