2007-02-09 (金) [長年日記]
■ [Rails] SQLite3でデフォルトが勝手についちゃうお。
gemの挙動がおかしいのは直ったけど、なんかまだdefaultの扱いがおかしー。勝手に文字列になるー。Windowsだとうまくいったので、なんか環境がおかしいのかね。
$./script/generate model Book title:string
$rake db:migrate
$./script/console
>> book = Book.new
>> #<Book:0x41245e3c @new_record=true, @attributes={"title"=>"NULL"}>
ぬー。なにこの「@attributes={"title"=>"NULL"}」。
DDLを見てみるとこうなっとる。
SQLite version 3.3.8
Enter ".help" for instructions
sqlite> .schema books
CREATE TABLE books ("id" INTEGER PRIMARY KEY NOT NULL, "title" varchar(255) DEFAULT NULL);
この時点で「DEFAULT NULL」がついてることはまあいいとして(よくないけど)、オブジェクトをnewした時点で勝手に文字列にしちゃうのはイクない。イクない。
Rails 1.2.2とgem 0.9.2とsqlite3-ruby 1.2.1なのだけどなー。
ぎゃーーー勘違い
$apt-get remove libsqlite3-ruby
していい気になってたら、
$apt-get remove libsqlite3-ruby1.8
もやらないといけなかったみたい。。。。
すいませんすいません。
gemとapt-getの住み分けぐぁ。
これからはgemだけで管理するようにします。
$gem install sqlite3-ruby

私も痛い目にあってからRuby関係はgem、あとはそれぞれのパッケージ管理システムを使うようにしています。