0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ruby on Rails チュートリアル第6章 ユーザーモデル

Last updated at Posted at 2019-11-13

ユーザーモデル

 Railsでは、データモデルとして扱うデフォルトのデータ構造のことをモデルと呼ぶ。RailsではActiveRecordというライブラリを用いてデータベースとやりとりを行い、データモデルのオブジェクトの保存、更新、削除などを行う。また、Railsではデータの定義をRubyで記述でき、SQLを意識する必要がない。データをモデリングする際は、デフォルトでリレーショナルデータベースが使用され、リレーショナルデータベースは、データ行で構成されるテーブルからなり、各行はデータ属性のカラム (列) を持つ。例えばnameとemailを持つユーザーを保存するのであれば、nameとemailのカラムを持つusersテーブルを作成する。

image.png

ユーザーモデルはこのようになる。
このユーザーモデルを作成するために、ターミナルで以下のコマンドを打つ

rails generate model User name:string email:string

 ここでは、モデル名と、データの属性名(name,email)とそのデータ型を指定している。このgenerateコマンドにより、マイグレーションファイルというデータベースの構造に変更を加えるファイルが生成される。

db/migrate/[timestamp]_create_users.rb
  def change
    create_table :users do |t|
      t.string :name
      t.string :email

      t.timestamps
    end
  end
end

 このマイグレーションファイルのchangeメソッドにより、Railsのcreate_tableメソッドが呼び出され、ユーザーを保存するためのテーブルがデータベースに保存される。そのcreate_tableメソッド内でブロック変数t(tableのt)を生成し、users tableにstring型のname属性とemail属性のカラムを追加している。また、t.timestampsではcreated_atとupdated_atという2つの「マジックカラム (Magic Columns)」が生成される。これらは、あるユーザーが作成または更新されたときに、その時刻を自動的に記録するタイムスタンプである。なお、Railsの慣習でモデル名(User)は単数形であるが、テーブル名(users)は複数形となっている。
 マイグレーションを完了させるにはターミナルで

rails db:migrate

と打つ必要がある。これで以下のようなユーザーモデルが作成された。
image.png

ターミナルで

user = User.new(name: "Michael Hartl", email: "mhartl@example.com")

と入力すると、Userモデルのnewメソッドでnameとemailを指定した新しいユーザーオブジェクトが生成される。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?