如何清除密码填写注册/注册authlogic错误?
问题描述:
我使用Ruby 1.8.7,Rails 2.3.8,并使用Authlogic 2.1.6进行注册,登录,注销。事实上,这三件事几乎是我所做的一切!如何清除密码填写注册/注册authlogic错误?
在注册期间,如果用户的注册信息有错误,我希望密码和password_confirmation字段在视图重绘时为空。我认为一个能清除在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 => "" %>
但这似乎不是我的理想方式,以不处理它!
答
你可以做你有什么已经或:
def create
if @user_session.save
...
else
params[:users][:password] = ''
个人而言,我会坚持自己拥有什么。
好处是,必须解决这个问题才能在rspec中更好地测试我的视图。一切都是学习体验! – Iain 2010-10-30 16:15:31