モデルの作成
とりあえず、データベースの形式はデフォルトのsqliteでいくとして、データベースファイルを作成。
$ rake db:create
db/development.sqlite3 already exists
続いて、モデルの作成。
$ rails g model kind
invoke active_record
create db/migrate/20140104132444_create_kinds.rb
create app/models/kind.rb
invoke test_unit
create test/models/kind_test.rb
create test/fixtures/kinds.yml
⬇️マイグレーションファイルを以下に修正。
class CreateKinds < ActiveRecord::Migration
def change
create_table :kinds do |t|
t.string :name, :null => false
t.integer :io, :null => false
t.timestamps
end
end
end
そしてマイグレート。
$ rake db:migrate
(in /Users/{ユーザ名}/Documents/develop/ruby/AcountBook)
== CreateKinds: migrating ====================================================
-- create_table(:kinds)
-> 0.0014s
== CreateKinds: migrated (0.0015s) ===========================================
ちゃんとテーブルが作成されたか、sqliteコマンドで実行。
$ rails db
SQLite version 3.7.13 2012-07-17 17:46:21
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
kinds schema_migrations
sqlite> .schema kinds
CREATE TABLE "kinds" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255) NOT NULL, "io" integer NOT NULL, "created_at" datetime, "updated_at" datetime);
sqlite> .exit
ちゃんとできている模様。
マイグレーションファイル編集時に、別テーブルのidを参照する
例)
class CreateExpenses < ActiveRecord::Migration
def change
create_table :expenses do |t|
t.references :kind, :null => false ※ kindテーブルのidを参照
t.references :member ※ memberテーブルのidを参照
t.integer :expense, :null => false
t.string :note
t.date :date
t.timestamps
end
end
end
⬇️参考リンク
とりあえず、全てのテーブルを作成。
0 件のコメント:
コメントを投稿