内容へ移動
alone-doc
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
バックリンク
メディアマネージャー
サイトマップ
ログイン
>
メディアマネージャー
サイトマップ
現在位置:
start
»
alpersist
»
crud
トレース:
alpersist:crud
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== CRUD ====== SQLiteを例に、コントローラ用のmain.rbを使って説明します。 この例では、デフォルト(action_index)で全件リストを簡易表示します。 <code ruby 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 </code> ===== Create ===== <code ruby> def action_c() result = @person.create({ :id=>1, :name=>"Yamaguchi", :age=>18 }) </code> http://localhost:10080/index.rb?ctrl=tst&action=c 等、&action=c をURL入力欄に手動で追加して、CREATEアクションをテストできます。 * この例では、createメソッドの引数で、保存するデータを与えています。 <code ruby> @person[:id] = 2 @person[:name] = "Ishikawa" @person[:age] = 20 result = @person.create() </code> * データをアトリビュート(values)に個別に設定してから保存する例です。 * createメソッドの引数は、空にします。 <code ruby> @person.values = {:id=>3, :name=>"Miyazaki", :age=>33} result = @person.create() </code> * 全アトリビュートを一度に指定する例です。 ===== Read ===== <code ruby> def action_r() result = @person.read({ :id=>3 }) </code> http://localhost:10080/index.rb?ctrl=tst&action=r 等、&action=r をURL入力欄に手動で追加して、READアクションをテストできます。 * この例では、readメソッドの引数としてプライマリキーのidを与えて、そのキーを持つレコードを読んでいます。 * 読んだデータは、オブジェクトの@valuesアトリビュートにhashで保存されます。 * @person[:name] 等、角カッコによるアクセッサも使えます。 ===== Update ===== <code ruby> def action_u() result = @person.update({ :id=>1, :age=>20 }) </code> http://localhost:10080/index.rb?ctrl=tst&action=u 等、&action=u をURL入力欄に手動で追加して、UPDATEアクションをテストできます。 * プライマリキーと更新するデータを含むhashを引数で与えて、レコードを更新します。 * createメソッドと同様に、あらかじめvalueに値を設定してから、update()と引数なしで実行することもできます。 ===== Delete ===== <code ruby> def action_d() result = @person.delete({ :id=>1 }) </code> http://localhost:10080/index.rb?ctrl=tst&action=d 等、&action=d をURL入力欄に手動で追加して、DELETEアクションをテストできます。 * プライマリキーを含むhashを引数で与えて、レコードを削除します。 * createメソッドと同様に、あらかじめvalueに値を設定してから、delete()と引数なしで実行することもできます。
alpersist/crud.txt
· 最終更新:
2019/02/12 00:06
by
hirohito
ページ用ツール
文書の表示
バックリンク
文書の先頭へ