【发布时间】:2013-11-18 20:27:20
【问题描述】:
我知道为数据库播种,我运行 rake db:seed 和一切。我的种子.rb 文件已全部设置完毕:
users = [{:name => 'User1 Lastname', :email => 'user1@example.com', :password => 'password'},
{:name => 'User2', :email => 'user2@example.com', :password => 'password'},
{:name => 'User3', :email => 'user3@example.com', :password => 'password'},
{:name => 'User4', :email => 'user4@example.com', :password => 'password'},
{:name => 'User5', :email => 'user5@example.com', :password => 'password'},
{:name => 'User6', :email => 'user6@example.com', :password => 'password'},
{:name => 'User7', :email => 'user7@example.com', :password => 'password'},
{:name => 'User8', :email => 'user8@example.com', :password => 'password'},
{:name => 'User9', :email => 'user9@example.com', :password => 'password'},
{:name => 'User10', :email => 'user10@example.com', :password => 'password'},
{:name => 'User11', :email => 'user11@example.com', :password => 'password'},
{:name => 'User12', :email => 'user12@example.com', :password => 'password'},
{:name => 'User13', :email => 'user13@example.com', :password => 'password'},
{:name => 'User14', :email => 'user14@example.com', :password => 'password'},
{:name => 'User15', :email => 'user15@example.com', :password => 'password'},
{:name => 'User16', :email => 'user16@example.com', :password => 'password'},
{:name => 'User17', :email => 'user17@example.com', :password => 'password'},
{:name => 'User18', :email => 'user18@example.com', :password => 'password'},
{:name => 'User19', :email => 'user19@example.com', :password => 'password'},
{:name => 'User20', :email => 'user20@example.com', :password => 'password'},
]
users.each do |user|
User.create(user)
end
但是现在每当我运行rails server 时,它都会再次播种它们!我以为只有在运行rake db:seed时才会发生这种情况@
~$ rails server
=> Booting WEBrick
=> Rails 3.2.14 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Connecting to database specified by database.yml
(0.1ms) begin transaction
User Exists (21.5ms) SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('user1@example.com') LIMIT 1
(0.1ms) rollback transaction
(0.1ms) begin transaction
User Exists (1.4ms) SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('user2@example.com') LIMIT 1
(0.1ms) rollback transaction
(0.1ms) begin transaction
User Exists (1.3ms) SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('user3@example.com') LIMIT 1
(0.1ms) rollback transaction
等 20 个用户然后启动它:
[2013-11-07 00:59:14] INFO WEBrick 1.3.1
[2013-11-07 00:59:14] INFO ruby 1.9.3 (2013-06-27) [i686-linux]
[2013-11-07 00:59:14] INFO WEBrick::HTTPServer#start: pid=1742 port=3000
任何帮助将不胜感激!!谢谢你
【问题讨论】:
-
我没有得到反对票和接近票,因为很清楚要问什么。您是否碰巧在 config/initializers/ 中有一个可能导致这种行为的自定义文件?
-
在您的
seeds.rb中插入一个raise,堆栈跟踪应该指向正确的方向。 -
它不应该运行种子任务,所以这可能是你介绍的。您是否添加了自定义初始化程序或以编程方式调用种子? +1 插入加注,可能会有所帮助。
-
原来是在我的初始化程序中。另一个队友抄过来测试,忘记拿出来了。谢谢大家!
-
能否请你把你的问题拉下来,或者自己回答。这里有很多人愿意回答未回答的问题。而这个问题肯定会浪费他们的时间。好吧,它确实浪费了我的。谢谢。
标签: ruby-on-rails ruby