Проблема обновления поля базы данных с моего контроллера - PullRequest
2 голосов
/ 24 мая 2010

У меня есть метод обновления в моем контроллере пользователей, который я вызываю из HTTPService во Flex 4. Метод обновления следующий:

  def updateName
    @user = User.find_by_email(params[:email])
    @user.name = params[:nameNew]
    render :nothing => true
  end

Это вывод консоли:

Обработка UsersController # updateName (для 127.0.0.1 на 2010-05-24 14:12:49) [POST]

Параметры: {"action" => "updateName", "NameNew" => "бен", "контроллер" => "пользователи", "Электронная почта" => "email@gmail.com"}

Пользовательская нагрузка (0,6 мс) SELECT * FROM "users" WHERE ("users". "email" = 'email@gmail.com') LIMIT 1 Завершено за 20 мс (Вид: 1, БД: 1) | 200 ОК [http://localhost/users/updateName]

Но когда я проверяю свою базу данных, поле имени никогда не обновляется. Что я делаю неправильно? Спасибо за чтение.

Ответы [ 2 ]

4 голосов
/ 24 мая 2010

Вы только изменили пользовательский объект в памяти, т.е. вы не сохраняете изменения в базе данных. Вы хотите что-то вроде:

def updateName
  @user = User.find_by_email(params[:email])
  @user.name = params[:nameNew]
  @user.save
  render :nothing => true
end

Кроме того, вы можете поместить @ user.save в условие if, чтобы проверить правильность сохранения модели.

2 голосов
/ 24 мая 2010

Вам необходимо вызвать метод обновления вашей модели после обновления полей

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