将测试数据从rails存储到数据库中

时间:2013-08-30 10:28:45

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

我想在运行应用程序时自动将测试数据存储在数据库中。

以下是我想要使用的数据:

INSERT INTO `crm_donation_email_types` (`id`, `emailtype`, `created_at`, `updated_at`) VALUES
(1, 'to', '2013-08-28 05:19:08', '2013-08-28 05:19:08'),
(2, 'cc', '2013-08-28 05:19:15', '2013-08-28 05:19:15'),
(3, 'bcc', '2013-08-28 05:19:26', '2013-08-28 05:19:26'),
(4, 'from', '2013-08-28 05:19:35', '2013-08-28 05:19:35');

我想知道在哪里添加这些行?我不想运行rake db:migration/seed 但我想当我启动我的应用程序,如启动服务器,它应该包含在数据库中。任何想法???

2 个答案:

答案 0 :(得分:0)

1)在config/initializers/test_data.rb

中创建一个文件

2)在该档案中

  conn = ActiveRecord::Base.establish_connection( :adapter => "mysql", :host => "localhost", :username => "myuser", :password => "mypass", :database => "test_database" )

  conn.execute("INSERT INTO 'crm_donation_email_types' ('id', 'emailtype', 'created_at', 'updated_at') VALUES   (1, 'to', '2013-08-28 05:19:08', '2013-08-28 05:19:08'), (2, 'cc', '2013-08-28 05:19:15', '2013-08-28 05:19:15'), (3, 'bcc', '2013-08-28 05:19:26', '2013-08-28 05:19:26'), (4, 'from', '2013-08-28 05:19:35', '2013-08-28 05:19:35');") 

答案 1 :(得分:0)

是否有任何理由无法使用fixturesfactory_girl

要使用灯具,您可以在yamlspec/fixtures中放置一个名为test/fixtures的{​​{1}}文件,其内容将为

crm_donation_email_types.yml

当您运行此特定模型的单元测试时,Rails将根据此文件插入记录。如果您在其他测试中需要这些灯具,请使用fixtures类方法。有关所有详细信息,请阅读2.3 The Low-Down on Fixtures

如果您决定使用factory_girl,请阅读GETTING_STARTED指南。