Ruby on Rails (3.x >= 3.2.9) のためのブログです (どっちかというと社内ブログ的な感じで、基礎から書いてきます) 。
12月
10
Comments

データベースにテストデータを入れたい場合、fixture というものを使用します。

以下の様に model を作成した場合、test/fixtures 以下に、xxx.yml が作成されます。

$ rails generate model user
      invoke  active_record
      create    db/migrate/20121204111949_create_users.rb
      create    app/models/user.rb
      invoke    test_unit
      create      test/unit/user_test.rb
      create      test/fixtures/users.yml
このファイル (test/fixtures/users.yml) に、テストデータを記入します。

以下がその例

  1. # test/fixtures/users.yml  
  2. <% 1.upto(3) do |n| %>  
  3. user<%= n %>:  
  4.   name: ユーザー<%= n %>  
  5. <% end %>  

また、アソシエーションで外部キーを設定したい場合は、結び付けたいデータのラベル名を指定します。
  1. # test/fixtures/articles.yml  
  2. <% 1.upto(3) do |n| %>  
  3. <% 1.upto(5) do |m| %>  
  4. article<%= n %>-<%= m %>:  
  5.   user: user<%= n %> #user1ラベルを指定  
  6.   name: 記事<%= m %>  
  7. <% end %>  


また、この様に外部キーを設定する場合、model に リレーションの設定をしなければなりません (めっちゃハマった.........(´;ω;`)ブワッ)

この場合は、
  1. # models/article.rb  
  2. class Article < ActiveRecord::Base  
  3.   belongs_to :user # この記述が必要!!  
  4. end  
のように、belongs_toを指定します。

この様にして、fixtureファイルを作成したら、rake db:fixtures:load コマンドを実行
$ rake db:fixtures:load

これでテストデータが挿入されます。

Categories: , , , ,

Leave a Reply