我有一個關於發生在我身上的奇怪事情的問題。不能找到seeds.rb創建的用戶
我有一個Rails應用程序,我預先填充了一些預先定義的用戶,我運行命令rake db:seed
和它創造的那些用戶,我請與rails c
和運行User.all
有他們。我運行User.find(1)
它返回一個用戶。好的,沒問題。
但是,當我啓動應用程序,我有我的user.rb
之一,下面的代碼
User.find(1) # I know that this user will have a fixed id throughout every environment
但是......它沒有找到,我得到一個ActiveRecord::RecordNotFound
異常。
我的目標是在數據庫中創建一個新用戶後,接收來自User.find(1)
的歡迎消息。可以說,它是相關的事實,這是一個ActiveRecord的回調中,after_commit
編輯:
我的代碼很簡單,創建新用戶後,它從用戶where(email: "theemail").first
所以臨危消息我user.rb模式有以下摘錄:
after_commit :send_welcome_message
def send_welcome_message
welcome_user = User.where(email: "xyz").first
Conversation.send_welcome_message(self, welcome_user)
end
我把一個調試器在send_welcome_message
檢查User.all.size
並返回1.我用導軌控制檯,同樣的查詢,返回5.
您是否正在運行** rake db:seed **在您運行系統的相同環境中?我的意思是......一個人可能會** RAILS_ENV =測試rake db:seed **然後** RAILS_ENV =開發rails s **然後會出現混亂。 –
我知道這是我做過的一個愚蠢的問題。但它發生。你知道...... –
有沒有這樣的事情愚蠢的問題,我沒有指定的鐵軌環境,但它在開發 – tvieira