しかし、今までSQLite3で作られたデータベース上でSQL文を叩いたことがないので、やってみることにしました。
−管理人注−
以下のRailsコマンドは、Rails 3.2.3を使用しています。
booksテーブルを作成し、ブラウザからアクセスできる管理画面を作ります。
$ rails new geinin
$ cd geinin
$ rails generate scaffold Book title:string author:string price:decimal
$ thin start &
以上のようにコマンド入力して、http://localhost:3000/booksにアクセスします。
ところが、エラー発生。
(ブラウザに表示されたエラーメッセージ)
ActiveRecord::StatementInvalid in BooksController#index
Could not find table 'books'
どうやら、マイグレーションの適用とやらをやらなければならないみたいです。
$ rake db:migrate
これで、再びhttp://localhost:3000/booksにアクセすると、booksテーブルにデータを作っていけます。
とりあえず、3件のデータを作成しました。
実質、3個のコマンドだけで、テーブルの管理画面が作れるとは、なんと素晴らしい!:-)
さて、今日の目的は、sqlite3コマンドを使って、
SELECT * FROM books
というSQL文を実行し、テーブルの内容を表示することです。
どうやら、geinin/db/development.sqlite3というファイルが、データベースファイルのようです。
とりあえず、カレントディレクトリをgeinin/dbに変更し、
$ sqlite3
と打ち込む。
しかし、コマンドプロンプトがsqlite>に変わっただけで、何をやったらいいか分からない。
仕方がないので、ひとまず「exit;」でSQLite3の対話環境から脱出する。
ありゃ?「Error: near "exit": syntax error」なんて言ってきやがる。
CTRL+dで脱出できました。
--helpオプションを付けて、使い方を見ると、
$ sqlite3 --help
Usage: sqlite3 [OPTIONS] FILENAME [SQL]
FILENAMEのところに、データベースファイルを指定すれば良さそうだ。
もう一度、sqlite3コマンドを実行。
$ sqlite3 development.sqlite3
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
SQL文を打ち込んでみる。
sqlite>select title,author,price from books;
こんにちは、Ruby芸人。|ペンギン玉|1980
炎のRuby芸人|ペンギン玉|3980
Rubyよ、永遠なれ|ペンギン玉|2480
|(バーティカルバー)で区切られて、入力したデータが表示されました。
これで、Railsアプリケーションからデータベースにちゃんとデータが作成されることが分かった。
どうせ本番環境では、MySQLを使うことになるので、SQLite3についてこれ以上踏み込むのはやめておこう。
いよいよ、『RailsによるアジャイルWebアプリケーション開発 第4版
【広告】
・さくらのVPS
・お名前.comのVPS
【参考文献】
RailsによるアジャイルWebアプリケーション開発 第4版
$ rails new sample
でサンプルアプリケーションを作り、ディレクトリを構成します。
そして、sample/db/seeds.rbにデータ作成のスクリプトを書いて、
$ rake db:seed
とコマンドを打ち込めばデータ作成完了。
ところが、実際にやってみると、
invalid multibyte char (US-ASCII)
のエラーが大量発生。
原因は、文字列に2バイトコードを使用していることでした。
db/seed.rbもRubyスクリプトなので、2バイトコードを使用するときは、マジックコメントを書いてやらなければなりませんでした。
ファイルの先頭に、
#-*- coding:utf-8 -*-
を記述してから、
$ rake db:seed
を実行すると、正常終了し、テストデータもちゃんと作られました。
ところで、私はrakeコマンドが一体何なのかや、rake db:seedを実行したときの引数、db:seedの意味を全く理解していません。
しかし、今のところ、これらについて詳しく知ろうという気はありません。
そんなことをやるぐらいなら、どんどん『Railsによるアジャイル〜』を読み進めていく方が得策です。
使える時間は限られているので、知らなくてもプログラミングが進められるなら、必要以上に知ろうとしないことも大切です。
さくらのVPS
という格言があるように(私が作りました)、開発環境を構築できれば、あとは解説書を読み進めるだけで、ステキなウェブサイトが完成します。
そう、あくまでも理想論ですが。
現在、私は『RailsによるアジャイルWebアプリケーション開発 第4版
まあ、既に初版、第3版と読んでいるので、理解できて当たり前なんですけどね。
でも、Railsでアプリケーション構築のためにクラスを作ると、やはり、
「えっ!?たった、これだけでいいの?」
と思わずにはいられない。
JavaでServletやJPSを使ってアプリケーションを作ったときのXMLファイルはどこに行っちまったんだい?
今度こそ、ちゃんとRailsを理解して、幸せなコーディング生活を送りたいものだなあ(これ、何回目のお願いだ?)。
Railsアプリ開発にさくらのVPS
【関連記事】
・Ruby on Railsインストールメモ on さくらのVPS

