スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Tag:スポンサー広告 

【Rails】fixturesとseedを使って初期データを作る方法

はじめに


Ruby on RailsでWebアプリケーションを作り始めたとき、空っぽのデータベースを前にして「さてどうするか」となったことはありませんか?そんな時はdb/seeds.rbを使いましょう。さらに今回はテストデータとして使うfixturesに使うデータを共有してテストデータを無駄なく使う方法を紹介します。

seedについて


先程も書きましたが、データベースに初期データを投入する場合に利用する仕組みです。


rake db:seedすることで上記のようなcreate処理が走ってDBに初期データが追加されるような仕組みです。

[参考リンク]
http://railsdoc.com/references/seed

fixturesについて


事前に用意したテストデータを読み込み、常にDBの内容を一定に保つための仕組みのこと
ですが

test/fixtures/テーブル名.yml

このようなファイル名で下記のようなテストデータを表すyamlを用意して



これらのデータをテスト時に利用してUnitテストなどを行ったりします。
テストについては後日書いていこうと思います。
ここではYamlにUnitテストで使うテストデータを書いておくんだなぁくらいの感じでいておいて下さい。

合せて使おう


fixturesで定義したデータをseedで使ったらデータの定義を2つしなくて済むのでラクかなと思いました。
seeds.rbに以下のように書いて



bin/rake db:seed

と実行するだけで開発を始めるのに必要な初期データを準備できて、かつfixturesを使ってUnitテストを書き始めることもできます。

(Modelのクラス名).to_s.tableizeという処理が役にたちました。

さいごに


実はRailsにはこんな事しなくても既にあるよという場合は教えて欲しかったりします。あんまり詳しくなかったので今回は自前でやってしまいましたが、seedとfixturesで別々のデータを定義するの面倒ですもんね。
スポンサーサイト

Tag:Rails  Trackback:0 comment:0 

Comment

comment form
(編集・削除用):
管理者にだけ表示を許可
プロフィール

6rats

Author:6rats
こんにちは、ITベンチャーで働くエンジニアです
主に自分の周りで起きた技術的なことをメモとして書き残して行きます。
Android以外にもRuby/Ruby on RailsやFuelPHPなどなどたまにやります。基本的なスタンスとしては興味があるもしくは必要になったらいろんなことにチャレンジします。
最近はiOSアプリ開発を始めています。

購読
follow us in feedly
個人プロダクト

Androidアプリ

Twitterクライアント

Webアプリケーション

EcPriceWatch(Amazon価格の推移を計測、最安値を知らせるサービス)
Google AdSense
ブログ村
にほんブログ村 IT技術ブログへ
にほんブログ村
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。