2011-02-11 2 views
1

using heroku, я пытаюсь обновить запись.Rails - Обновление записи?

Это то, что я сделал:

@user = User.find(11) 
@user.email = '[email protected]' 
@user.save 
>> true 

Но тогда, когда я User.find (11), электронная почта не обновляется? Любые идеи почему?

+0

Это точный код? Потому что вы не закрыли предложение по электронной почте. – acconrad

+0

Это была опечатка. updated – AnApprentice

+0

Это то, что происходит в консоли или есть другой код, связанный с этим, который вы не включили? –

ответ

3

Я бы посоветовал попробовать @user.reload после того, как вы нажали @user.save. Вышеприведенное предложение, чтобы попробовать @user.save! (read - «@user dot save bang») также является хорошим, потому что оно выдает ошибку, если валидация не удалась при сохранении @user.

Надеюсь, что это поможет.

0

также вы должны зарегистрироваться @user.save!, который выдаст ошибку, если произошла ошибка. Но если @user.save дать true, то я не вижу причин, почему он не сохраняется в db.

0

Если вы получаете true, то вам действительно не нужно беспокоиться о том, что запись не проверяется. Правда говорит, что он спасся. Но хорошо использовать @user.save!, как упоминалось в @rubyprince. Таким образом, будут предприняты недопустимые попытки обновления.

Кроме того, вы уверены, что он не обновляется? Если вы используете бэкэнд базы данных, я бы пошел прямо в базу данных, а не полагался на User.find()

Вы также можете попробовать сделать User.find(11).reload, чтобы узнать, работает ли это. Вы можете найти информацию here о reload. Поэтому вы можете попробовать что-то вроде этого ...

user = User.find(11).reload 
puts user.email 

И посмотрите, изменилось ли электронное письмо.

Смежные вопросы