「Railsでアプリケーションを実装してみる」では、トップ画面に画像と文字列を配置した。
今回は、画面に表示させるデータ(モデル)を作成する。
モデルとは、MVCモデルで言うところの「モデル」で、データそのものを指す。(モデルはただのクラスだが、Railsではこれをモデルと呼ぶらしい)
モデルを作る
Railsでクラスを作る場合は、rails g model コマンドを使う。(Railsの場合、直接ファイルを編集しない)
rails g model CatsInfo name:string age:integer year:integer month:integer date:integer color:string
なんかできた。
モデルとマイグレーションファイルができていることが分かる。
- モデルファイル:app/models/cats_info.rb
- マイグレーションファイル:db/migrate/20210131060724_create_cats_infos.rb
マイグレーションファイルは、データベースの設計図のようなもので、データベースの変更が記述されているだけなので、これがデータベースなわけではないらしい。
つまり、そのままだと使えず、実際にデータベールに登録して使うためには「実行」しなければならない。
rails db:migrate
データベースに登録できたっぽい。
schema.rbが生成されている。
空っぽのデータベースができたところで、中身を入れていく。
schema.rbと同じ場所に、seeds.rbというファイルがあるので、それを編集する。
CatsInfo.create(name:"Shima", age:9, year:2012, month:9, date:9, color:"Kijitora") CatsInfo.create(name:"Suco", age:12, year:2009, month:5, date:5, color:"Brown")
マイグレーションファイルの時と同様、書いただけでは意味をなさないので、下記のコマンドで、データベースにデータを書き込む。
rails db:seed
次に、ちゃんと書込めたかどうかを確認する。
Rubyにirbがあったように、RailsにもRails consoleというものがあって、対話形式でRubyのプログラムを実行できる。
下記のコマンドで、Rails consoleを起動する。
rails c
Rails consoleが起動したら、先ほど作成したデータベースの中身を読みだしてみる。
CatsInfo.all
先ほど登録した内容が、ぞろっと表示されていることが分かる。
もちろん個別にデータを読み出すこともできる。
補足:
Rails consoleでは、データベースから全データを読みだすのに、「CatsInfo.all」というコマンドを使ったが、これはRailsのActiveRecordというライブラリが、このコマンドをSQL「select * from CatsInfo」と解釈して、上手いことやってくれている、ということらしい。
Railsを使う上では、SQLを覚える必要はなさそうだが、Rails独自のデータベース操作コマンド的なものは覚える必要がある。
参考: