2016-05-18 19 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,像明智的其他車型。

有沒有人有更好的錯誤反饋建議,這種情況?

相關問題