У меня вопрос о чем-то странном, что происходит со мной.Не удается найти Пользователи, созданные seeds.rb
У меня есть приложение рельсы, которые я предварительно заполнены некоторые заранее определенные пользователями, я запускаю команду 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
EDIT:
Мой код прост, после создания нового пользователя, он recieves сообщение от пользователя 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 = test rake db: seed **, а затем ** RAILS_ENV = рельсы разработки s **, и тогда будет путаница. –
Я знаю, что это тупой вопрос, который я сделал. Но это происходит. Черт, бывает, вы знаете ... –
Нет такой вещи, как глупые вопросы, я не указывал среду рельсов, но она была в разработке – tvieira