###modelファイル
Userモデルの作成によってどのようにマイグレーションファイルが作成されるか
を見てきた。
usersテーブルを作成することで、development.sqlite3という名のファイルを更新し、id、name、email、created_at、updated_atを作成しました。
この節では、以後このモデル用ファイルを理解することに専念します。
app/models/ディレクトリにある、user.rbに書かれたUserモデルのコードを見てみましょう。
####生成されたばかりのUserモデル
class User < ApplicationRecord
end
class User < ApplicationRecord
という構文で、UserクラスはApplicationRecord
を継承する
Userモデルは自動的にActiveRecord::Baseクラスのすべての機能を持つ
ことになります
ActiveRecord::Baseに含まれるメソッドなどについて知らなければ何の役にも立ちません
###演習
1.railsコンソールを開き、User.newでUserクラスのオブジェクトが生成されること、そしてそのオブジェクトがApplicationRecordを継承していることを確認してみてください
ubuntu:~/environment/sample_app (modeling-users) $ rails console
Running via Spring preloader in process 13587
Loading development environment (Rails 6.0.3)
>> user = User.new
(0.4ms) SELECT sqlite_version(*)
=> #<User id: nil, name: nil, email: nil, created_at: nil, updated_at: nil>
>> user.class
=> User(id: integer, name: string, email: string, created_at: datetime, updated_at: datetime)
>> user.class.superclass
=> ApplicationRecord(abstract)
2.ApplicationRecordがActiveRecord::Baseを継承していることについて確認してみてください。
ubuntu:~/environment/sample_app (modeling-users) $ rails console
Running via Spring preloader in process 13587
Loading development environment (Rails 6.0.3)
>> user = User.new
(0.4ms) SELECT sqlite_version(*)
=> #<User id: nil, name: nil, email: nil, created_at: nil, updated_at: nil>
>> user.class
=> User(id: integer, name: string, email: string, created_at: datetime, updated_at: datetime)
>> user.class.superclass
=> ApplicationRecord(abstract)
>> user.class.superclass.superclass
=> ActiveRecord::Base
継承していることを確認できた。