目次

CRUD

SQLiteを例に、コントローラ用のmain.rbを使って説明します。

この例では、デフォルト(action_index)で全件リストを簡易表示します。

main.rb
require 'al_persist_sqlite'
DSN = "/tmp/datafile.sqlite"
 
# あらかじめテーブルを作っておいてください。
# create table person(id integer, name text, age integer);
 
class PersistTestController < AlController
  def initialize()
    @db = AlPersistSqlite.connect( DSN )
    @person = @db.table( "person", :id )
  end
 
  def action_index()
    @person.all.each {|data|
      puts data.values, "<br>"
    }
  end
 
  def action_c()
    # データを引数で与えて保存
    result = @person.create({ :id=>1, :name=>"Yamaguchi", :age=>18 })
    puts @person.values, result, "<br>"
 
    # データをアトリビュート(values)に個別に設定してから保存
    @person[:id] = 2
    @person[:name] = "Ishikawa"
    @person[:age] = 20
    result = @person.create()
    puts @person.values, result, "<br>"
 
    # データをアトリビュート(values)に一度に設定してから保存
    @person.values = {:id=>3, :name=>"Miyazaki", :age=>33}
    result = @person.create()
    puts @person.values, result, "<br>"
  end
 
  # キーを指定してデータを読み込み、内部(@values) に保持する。
  # 引数には、プライマリキー以外の値が含まれていてもよく、単に無視される。
  def action_r()
    result = @person.read({ :id=>3 })
    if result
      puts @person.values
    else
      puts "Failed"
    end
  end
 
  def action_u()
    # データを引数で与えて更新
    result = @person.update({ :id=>1, :age=>20 })
    puts @person.values, result, "<br>"
 
    # createと同様に、valueに一度に設定、個別に設定をしてから
    # @person.update() することもできる。
  end
 
  def action_d()
    # プライマリキーを指定して削除
    result = @person.delete({ :id=>1 })
    puts @person.values, result, "<br>"
  end
end

Create

  def action_c()
    result = @person.create({ :id=>1, :name=>"Yamaguchi", :age=>18 })

http://localhost:10080/index.rb?ctrl=tst&action=c 等、&action=c をURL入力欄に手動で追加して、CREATEアクションをテストできます。

    @person[:id] = 2
    @person[:name] = "Ishikawa"
    @person[:age] = 20
    result = @person.create()
    @person.values = {:id=>3, :name=>"Miyazaki", :age=>33}
    result = @person.create()

Read

  def action_r()
    result = @person.read({ :id=>3 })

http://localhost:10080/index.rb?ctrl=tst&action=r 等、&action=r をURL入力欄に手動で追加して、READアクションをテストできます。

Update

  def action_u()
    result = @person.update({ :id=>1, :age=>20 })

http://localhost:10080/index.rb?ctrl=tst&action=u 等、&action=u をURL入力欄に手動で追加して、UPDATEアクションをテストできます。

Delete

  def action_d()
    result = @person.delete({ :id=>1 })

http://localhost:10080/index.rb?ctrl=tst&action=d 等、&action=d をURL入力欄に手動で追加して、DELETEアクションをテストできます。