Я использую Ruby 1.8.7, Rails 2.3.8 и используя Authlogic 2.1.6 для регистрации, входа в систему, выхода из системы. На самом деле, эти три вещи - это почти все, что я сделал!Как очистить пароль при регистрации/регистрации с помощью authlogic?
Во время регистрации, если у пользователя есть ошибки в их регистрационной информации, я хочу, чтобы поля пароля и пароля были пустыми при повторном просмотре. Я предположил один может очистить поля в UsersController следующим образом:
class UsersController < ApplicationController
before_filter :require_no_user, :only => [:new, :create]
def create
@user = User.new(params[:user])
if @user.save
@user.save
flash[:success] = "Registration successful!"
redirect_back_or_default root_path
else
@user.password = ""
@user.password_confirmation = ""
@page_title = "Registration"
end
end
...
Поле password_confirmation успешно очищается этим кодом, но поле пароля нет. Я вставил вызов отладчика сразу после «else», и, конечно же, значение @ user.password не изменилось по строке «@ user.password». Я предполагаю, что в Authlogic есть что-то, что восстанавливает значение поля после того, как я попытаюсь его очистить. (Я также попытался установить его на «ноль», с тем же результатом).
Я пришел с работы вокруг, я явно устанавливая значение поля формы на «» в представлении:
<%= form.password_field :password, :value => "" %>
Но это не кажется мне идеальным способом справиться!
Сверху, чтобы обойти это, это привело к лучшему тестированию моих представлений в rspec. Все это опыт обучения! – Iain