rails 3 + devise: если в регистрационной форме есть ошибка, как предотвратить удаление данных в других полях? - PullRequest
1 голос
/ 10 июля 2011

У меня есть пользовательское поле (referral_code) в моей форме регистрации устройства. Также есть пользовательский контроллер регистрации (так что я могу перенаправить на пользовательскую страницу «проверить вашу электронную почту» после их регистрации).

Все работает нормально, за исключением случаев, когда новый пользователь делает ошибку (например, пароль / подтверждение не совпадают), когда отображается сообщение об ошибке, а также стирается поле кода реферала.

Как я могу сохранить действительные данные (код реферала) «заполненными», если другое поле (пароль или адрес электронной почты) возвращает сообщение об ошибке пользователю?

1 Ответ

2 голосов
/ 10 июля 2011

Вы должны добавить это как virtual_attribute.На самом деле, даже если бы он прошел проверку, ваше пользовательское поле не сохранилось бы, и вы бы еще больше запутались.

Вот обычная модель учетной записи устройства:

class Account < ActiveRecord::Base

    devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable

    attr_accessible :email, :password, :password_confirmation, :remember_me

end

Теперь, чтобы получитьнастраиваемые поля для сохранения необходимо добавить их как виртуальные атрибуты.

class Account < ActiveRecord::Base

    devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable

    attr_accessible :email, :password, :password_confirmation, :remember_me, :phone_number, :other_field

end

Теперь :phone_number, :other_field сохранит.

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