Ruby on Rails - Model
モデル
データベース関連の設定を行います。
モデルの作成
以下コマンドを実行します。
$ bin/rails generate model User
invoke active_record
create db/migrate/2015??????????_create_users.rb
create app/models/user.rb
テーブル定義を調整
file:webapps/db/migrate/2015??????????_create_users.rb
class CreateUsers < ActiveRecord::Migration
def change
create_table :users, primary_key: 'user_id' do |t|
t.string :name, null: false
t.string :password
t.timestamps null: false
end
add_index :users, :name, unique: true
end
end
DBマイグレーション
$ bin/rake db:migrate
== 2015?????????? CreateUsers: migrating ===========
-- create table(:users, {:primary_key=>"user_id"})
-> 0.0333s
-- add_index(:users, :name, {:unique=>true})
-> 0.0566s
== 2015?????????? CreateUsers: migrated (0.0910s) ==
以下は直後のテーブル定義の内容です
MariaDB [webapps_development]> desc users;
+------------+--------------+------+---------+----------------+
| Field | Type | Null | Default | Extra |
+------------+--------------+------+---------+----------------+
| user_id | int(11) | NO | NULL | auto_increment |
| name | varchar(255) | NO | NULL | |
| password | varchar(255) | YES | NULL | |
| created_at | datetime | NO | NULL | |
| updated_at | datetiem | NO | NULL | |
+------------+--------------+------+---------+----------------+
5 rows in set (0.00 sec)
テーブルにデータを投入
シードデータの投入機能もありますが
今回は手動で挿入します。
MariaDB [webapps_development]> insert into users(name, password) values('tera', 'fugahoge');
Query OK, 1 row affected, 2 warnings (0.01 sec)
MariaDB [webapps_development]> select * from users;
+---------+------+----------+---------------------+---------------------+
| user_id | name | password | created_at | updated_at |
+---------+------+----------+---------------------+---------------------+
| 1 | tera | fugahoge | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 |
+---------+------+----------+---------------------+---------------------+
1 rows in set (0.00 sec)