subtitle

RaiseTechの各種コースをはじめとしたイロイロな学習の記録

Railsでモデルを作成する(表示させるデータを作成する)

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独自のデータベース操作コマンド的なものは覚える必要がある。


参考:

RailsのActiveRecord(SQL逆引き)