RailsのSeedファイルをシンプルに作成するためのGem、「seed-fu」の導入手順です。DBへの初期値の投入がある場合にはオススメです。
13/12/31 21:30 Rails 4 x Ruby 2.1で動作確認
🚜 seed-fuって何?
「seed-fu」は、seedデータの追加や管理を楽にするために作られたGemです。
構造もシンプルで扱いやすいです。
🚌 seed-fuの組み込み
Gemfileに以下を追加して、bundle install
を実行。
# Seed Management |
もし、userモデルのseedファイルを作成する場合は、db/fixtures/users.rb
を作成して、次のように編集。
# :emailがユニークになる条件(省略可能) |
次のコマンドでfixture内のseedファイルをDBに放り込めます。
rake db:seed_fu |
🚕 補足: RSpecでseedデータをテストDBに自動でロードする
seed_fuはRSpecとの親和性も抜群です。たとえばテストのときにseedデータをDBに読み込ませたい時にはspec/spec_helper.rb
に次の内容を登録すればOKです。
RSpec.configure do |config| |
RSpecにチャレンジしてみたい方は「RSpec/Spork/Guard/Growl/Rails 3.2.9で作る - プリチーなTDD環境!」
🎃 補足: Capistranoでdeploy時に自動で読み込む
seed_fuはCapistranoとも相性バツグンです。たとえば本番デプロイ時にseedデータを本番DBに読み込ませたい場合は、config/deploy.rb
に以下を追加。
namespace :deploy do |
Capistranoのお手軽導入手順を「Rals3.2.9で始める Git連携Capistranoによる自動デプロイ」にまとめています。もしご興味があればぜひ。
🐡 参考リンク
ruby on rails - w RSpec, how to seed the database on load? - Stack Overflow
🏀 変更来歴
12/12/17不明 「補足:RSpecでseedデータをテストDBに自動でロードする」を追加
12/12/18 14:15「補足:Capistranoでdeploy時に自動で読み込む」を追加
13/01/15 10:50 rspec_helperの設定を修正
13/12/31 22:15 Rails 4 x Ruby 2.1で動作確認