作成日と更新日の追加
作成日と更新日の情報を追加してみた。今は必要性は無いのだが、今後よく使いそうな機能になりそうなので。
作業はとても簡単。手順としては、データベースのフィールドにcreated_on、updated_onを追加するだけ。これだけでデータベースに新規追加した時created_onに、更新した時updated_onに、それぞれ日時が自動的に保存される。守るべきことはフィールド名をcreated_on、updated_onと設定するだけ。すごくシンプルな仕組み。
マイグレーションを利用してやってみた。
-
-
- ちなみに、created_at、updated_atでも同じ機能を発揮する。翻訳ページで試してみると、英語の慣習では時刻の時はat、日付や曜日の時はonを使うようだ。Ruby on Railsの中では同じTimeオブジェクトだから、どっちを使っても同じ結果になるのかな?
-
- Generatorsタブ
script/generate migration add_column_created_on の実行。(1でmigrationを選択、2でadd_column_created_onと入力)
実行すると、002_add_column_created_on.rbファイルが作成される。
下記のように、追加する場合、削除する場合それぞれのコーディング。
- 002_add_column_created_on.rb
class AddColumnCreatedOn < ActiveRecord::Migration def self.up add_column :softwares, :created_on, :datetime add_column :softwares, :updated_on, :datetime end def self.down remove_column :softwares, :created_on remove_column :softwares, :updated_on end end
self.upには、変更したい内容を書く。
self.downには、変更を取り消す方法を書く。
このようにして、データベースに対する変更を番号管理されたファイルに記録しておくことで、簡単に任意の状態に戻すことが出来る。(ファイル名先頭の番号はscript/generate migrationで自動発番される。)
- Rake Tasksタブ
マイグレーションの設定をしたら、rake migrate の実行。
-
-
- 以前の状態に戻したい場合は、右側のオプション指定でVERSION=001と入力すれば、001_create_softwares.rbで設定した状態に戻る。
- オプション指定が無くrake migrateの実行だけなら最新の状態、つまりVERSION番号が最大の状態に設定される。
-
- Consoleタブ
- 一覧表示