ユーザ用ツール

サイト用ツール


samples:todo_file

todo_file

todoの追加・変更・削除を行います。

Alone添付の管理インターフェイスを使ってCRUDを簡単に実現するサンプルです。

本サンプルのプログラムの記述は以下に示すとおりAlFormオブジェクトとAlPersistFileオブジェクトの生成しか行っていません。これだけの記述で、データの登録・変更・削除、登録されたデータの一覧表示が実現できます。

main.rb
#!/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削除確認画面表示アクション
samples/todo_file.txt · 最終更新: 2013/06/05 02:10 by hirohito