DBのテーブルアクセスに失敗
Sqliteのテーブルを作成し、アクセスしようとしたらエラーが出たのでメモする。
テーブル名の末尾はsに
下記のようなコードを書いたらエラーになった。
#ユーザー管理テーブル class Usertbl < Sequel::Model unless DB.table_exists?(:usertbl) DB.create_table(:usertbl) do primary_key :id String :username String :password end end end #レコード登録 Usertbl.insert(:username => "ayaketan", :password => "1234")
そこで、テーブルの作成名を:usertblから:usertblsに変更したところ、うまくいった。
require 'sinatra' require 'rubygems' require 'sequel' DB = Sequel.connect("sqlite://user.db") #ユーザー管理テーブル class Usertbl < Sequel::Model unless DB.table_exists?(:usertbls) DB.create_table(:usertbls) do primary_key :id String :username String :password end end end #レコード登録 Usertbl.insert(:username => "ayaketan", :password => "1234")
クラス名の先頭以外に大文字を使用しない
また、下記のようにクラス名の先頭以外に大文字を使用した場合も上手くいかなかったので、注意。
require 'sinatra' require 'rubygems' require 'sequel' DB = Sequel.connect("sqlite://user.db") #ユーザー管理テーブル class UserTbl < Sequel::Model unless DB.table_exists?(:usertbls) DB.create_table(:usertbls) do primary_key :id String :username String :password end end end #レコード登録 Usertbl.insert(:username => "ayaketan", :password => "1234")