2016-05-18 92 views
1

我做了一个小db/seeds.rb文件:耙分贝:种子没有做任何事情

web = Website.find_or_create_by(id: 1) do |w| 
    w.website = "http://example.dev/" 
    w.banner_msg = "Hey! Banner message!" 
    w.signup_msg = "Wahey! Sign up message!" 
    w.bg_col = "#333" 
    w.txt_col = "#EEE" 
    w.btn_col = "#999" 
end 

pub = Publisher.find_or_create_by(id: 1) do |p| 
    p.phone = "021 111 1111" 
    p.website = web 
end 

User.find_or_create_by(id: 1) do |u| 
    u.email = '[email protected]' 
    u.password = 'password' 
    u.first_name = 'Joe' 
    u.last_name = 'Bob' 
    u.publisher = pub 
end 

User.create(id: 5, email: "[email protected]") 

当我运行rake db:seed,终端只是接受命令,并提出了新的线,没有错误消息,也没有“耙中止!“,没什么。

当我检查在Rails的控制台领域,有什么也没有。发生了什么?

+0

我相信你是在生产环境中做的吗?在这种情况下,尝试使用'RAILS_ENV =生产rake db:seed'。 – arogachev

+0

@arogachev在生产过程中运行'rake db:seed'是种危险的,为什么有人想要用假数据来生产生产数据库?但是你的方法可能会起作用,但是用'RAILS_ENV = development'代替更好,任何消息@ Mirror318? – bntzio

+0

@ Mirror318也尝试添加'puts“创建的用户:#{User.all.count}”'以查看它是否正在运行并在运行rake命令时实际创建用户。 – bntzio

回答

4

您可以使用find_or_create_by!(attributes, &block),它与find_or_create_by类似,但调用create!,因此如果创建的记录无效,则会引发异常。 APIDock

0

好吧,我发现,

1)的颜色已破,不让他们到这里来3位,必须是充分6

2)我的链关系是错误的。我有userpublisher,其中有一个website,当模特实际上是设置,其中websitepublisher具有user

我在这里的烦恼是有绝对没有错误消息。我不得不复制和粘贴的seeds.rb内容到Rails控制台,那么所有这说的是rollback,所以我不得不进入user.errors看到错误的user,像明智的其他车型。

有没有人有更好的错误反馈建议,这种情况?

相关问题