Rails - обновление записи? - PullRequest
1 голос
/ 11 февраля 2011

используя heroku, я пытаюсь обновить запись.

Вот что я сделал:

@user = User.find(11)
@user.email = 'xxx@xxx.com'
@user.save
>> true

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

Ответы [ 3 ]

3 голосов
/ 11 февраля 2011

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

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

0 голосов
/ 11 февраля 2011

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

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

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

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

И посмотрите, не изменился ли адрес электронной почты.

0 голосов
/ 11 февраля 2011

Также попробуйте @user.save!, который выдаст ошибку, если какие-либо проверки не пройдут. Но если @user.save даст истину, то я не вижу причин, почему она не сохраняется в БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...