soccer  2020/12/09更新

Model作成


rails g model Message content:string

でModelを作成できる。
詳しく見ていくと、
*g..generateの略
①Message...モデル名、 の先頭は必ず大文字にしなくてはいけない、単数形
②content...はカラム名を設定している。
③string....は文字列を指定している。

ex)age:integer だとageと言う名前で、整数型を指定している。

すると以下が作成される

invoke active_record
create db/migrate/20170201092919_create_messages.rb
create app/models/message.rb

Modelを作成すると同時にmigrationファイルも作成される↓

 db/migrate/20170201092919_create_messages.rb

中身としては、
*データベースのテーブル構成を定義するためのファイル

messagesテーブルのカラムとしてcontent
テーブル名はモデル名の小文字かつ複数形になります。テーブル名はモデル名の小文字かつ複数形になります。今回はmessages
messages
```
class CreateMessages < ActiveRecord::Migration[5.2]
def change
create_table :messages do |t|
t.string :content

  t.timestamps
end

end
```

以上がmigrtionフィルの作成です。しかしまだ、マイグレーションファイルが作成されただけで、実行していないので、 message-board_development のデータベースに messages テーブルは作成されていません。

rails db:migrate

↑実行方法。
*うまくいかない場合は、MySQL が起動しているか (sudo service mysqld start) などを確認。
**①マイグレーションの実行後はこのファイルを修正してもテーブルの変更はできない
②一度テーブルに反映されたマイグレーションファイルを、後になってから勝手に編集してはいけません
③Rails が使用しているテーブルの状態に変更を加える時には、 原則として rails generate migration... によって追加のマイグレーションファイルを更に生成します。

マイグレーションファイルが既にテーブルに反映されているかどうかは、

rails db:migrate:status

のコマンドで把握することができます。

タイトルとURLをコピーしました