Обновление атрибутов пользователя вне контроллеров devise - PullRequest
0 голосов
/ 02 марта 2012

Я использую устройство для аутентификации пользователей. Я определил счет для пользователя, который обновляется с течением времени. Отдельный контроллер позаботится об обновлении счета. Я использую @user.update_attributes(:score => new_score), но изменения не могут быть сохранены. Я подозреваю, что это происходит, потому что пользователь является объектом разработки.

Может кто-нибудь помочь мне разобраться?

Большое спасибо

1 Ответ

2 голосов
/ 02 марта 2012

С Devise у вас, вероятно, есть строка attr_accessible в вашей пользовательской модели. Это белый список атрибутов, который можно обновлять с помощью массового присвоения из хэшей (с помощью методов, таких как update_attributes). Вы можете сделать одну из двух вещей:

  1. добавить: оценка до attr_accessible. Это означает, что по умолчанию POSTing к экрану редактирования пользователя с параметрами [: user] [: score] = x обновит счет пользователя.

  2. назначьте счет непосредственно в вашем контроллере через @user.score = x. На прямое назначение не влияет attr_accessible

Вот документация: http://api.rubyonrails.org/classes/ActiveModel/MassAssignmentSecurity/ClassMethods.html#method-i-attr_accessible

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