どうも!chuckです。
前回に引き続き、RailsでWebアプリケーションを作っていきます。
前回は最低限のページのビューを作成しました。なので、今回は裏側のデータベースを作っていきたいと思います。
データーベースの作成
えっと、勘違いが無いように言っておくと、ここでいうデーターベースとはまだ中身のない状態です。MySQLかSQliteか、みたいな話です。
今回は大規模サイトでもないですし、チュートリアルでも扱ったSQliteを採用。
データーベース作成コマンドは以下のとおり。
rake db:create
データーベースに関するコマンドはdbを使うんですね!
ちなみに、僕の場合は「sqliteファイルはすでに存在している」と言われてしまいました…
自動生成されたんでしょうか??newしたとき??
ちなみに生成された内容は config/database.yml というファイルで確認できます。
development, test, productonの3パターンがあり。そうそう、railsでは3つの環境があるんだった!
テーブルの作成
次にテーブルを作成していきます。初心者にとってはこっちの作業こそがデーターベースの作成って感じですね!
テーブルの作成は以下のコマンドを発行。
rails generate model words
そういやコントローラを作るときもrails generateしましたね。何かを作る時はgenerate…φ(. . )
そして作成されたファイルがこちら。db/migrate/(タイムスタンプ)_create_words.rb
ここに追記していきます。
追記は以下の書式で書きます。
t.(データ型) : (カラム名) (, オプション)
今回は単語帳なので、単語、意味、分類、難易度の4つのカラムを作成しました。
テーブル作成の準備が整ったので、さっそくコマンドを打ちます。
rake db:migrate...
あれ??構文エラー??
あっ、モデルの作成時に列も指定しちゃえばいいんですね!
というわけで先ほど作ったモデルを削除ヽ(´Д`;)ノ
rails destroy model words と入力。
改めて作成。
rails generate model Word word:text meaning:text group:text level:integer
とコマンド(どうやらモデル名は先頭が大文字の単数形が良いみたいですね)
ちなみに、SQLiteのデータ型一覧↓
ファイルを確認すると、きちんとカラムが揃っています!
改めて rake db:migrate
できた!ヽ(=´▽`=)ノ
テーブルの確認
作ったテーブルを確認してみましょう♪
Railsコンソールから確認します。ターミナルでrails console --sandboxと入力。(sandboxはお試しモードみたいな感じで、加えた変更が保存されないモードになります。つまりデータを作成してもコンソールを閉じると破棄されます。)
さっそく空のデータを1件作成してみます。
できたー!
特にNotNull(空欄はNG)などの制約はないので、ふつうに作成できました。
しかし!ここで問題が…
よし!次は実際にデータを作ってみるぞ♪
ん…?ロシア語のキリル文字って認識されるのか…???(´Д`;)
1.まず英単語を入れてみる。
まあ普通に入る。
2.ロシア語入れてみる。
入力すると、
!??
エンターを押して確定すると、
空文字列になっている…(´;ω;`)
まさかこんなとこで引っかかるとは…(次回に続く)