我想在运行应用程序时自动将测试数据存储在数据库中。
以下是我想要使用的数据:
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
但我想当我启动我的应用程序,如启动服务器,它应该包含在数据库中。任何想法???
答案 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)
是否有任何理由无法使用fixtures或factory_girl?
要使用灯具,您可以在yaml
或spec/fixtures
中放置一个名为test/fixtures
的{{1}}文件,其内容将为
crm_donation_email_types.yml
当您运行此特定模型的单元测试时,Rails将根据此文件插入记录。如果您在其他测试中需要这些灯具,请使用fixtures
类方法。有关所有详细信息,请阅读2.3 The Low-Down on Fixtures。
如果您决定使用factory_girl,请阅读GETTING_STARTED指南。