sou's blog

落ち着いた華やかさがあり、上品に明るく陽気なさまを表す。

rails の seeds.rbの使い方について

連休だったので、久しぶりにC#から離れてRailsのお勉強。
もうすぐRuby2.0&Rails4.0がリリースされるみたいなので、もう一度参入するチャンス!
で、今回はRailsのseeds.rbの簡単な使い方をまとめる。

概要

  • マスタデータの投入。つまり初期データの投入に使える。

コマンド

rake db:seed

使い方

seeds.rbの編集

コマンドを呼び出すたびにseeds.rbの中身が追加されてしまうので、一回全部消去してidのautoincrementもクリアして入れなおす。
例えばBlogというモデルがあった場合は、一回delete_allを読んで


Blog.delete_all # 一回全部消して
Blog.connection.execute("delete from sqlite_sequence where name='blogs'") # autoincrementをクリアして
Blog.create(:name => "hoge blog") # データ投入

sqlite3で確認

コマンド呼び出したら実際にデータが投入されているか確認する

sqlite3 db/development.sqlite3

> select * from blogs;

注意点

日本語を扱う場合はファイルの先頭に以下を忘れないようにする。

# encoding: utf-8

依存関係がある場合は親のインスタンスを渡す

blog1 = Blog.create(:name => "hoge blog")
Entry.create(:blog => blog1, context => 'hogehogehoge')