我有一个关于发生在我身上的奇怪事情的问题。不能找到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