我根據AuthLogic示例設置了AuthLogic for Rails:http://github.com/binarylogic/authlogic_example。一個AuthLogic表單給我錯誤的驗證錯誤 - 爲什麼?
我可以成功登錄到系統,但用戶訪問時/ new.html.erb註冊一個新用戶,形式返回以下驗證錯誤:
Email is too short (minimum is 6 characters)
Email should look like an email address.
Login is too short (minimum is 3 characters)
Login should use only letters, numbers, spaces, and [email protected] please.
Password is too short (minimum is 4 characters)
Password confirmation is too short (minimum is 4 characters)
這些錯誤都不存在我輸入的數據。
# new.html.erb
<%= form.label :login, nil, :class => "label" %><br />
<%= form.text_field :login, :class => "inputBox",
:name => "login", :type => "text" %><br />
<%= form.label :password, form.object.new_record? ? nil : "Change password", :class => "label" %><br />
<%= form.password_field :password, :class => "inputBox",
:name => "password", :type => "text" %><br />
<%= form.label "Confirm password", nil, :class => "label" %><br />
<%= form.password_field :password_confirmation, :class => "inputBox",
:name => "password_confirmation", :type => "text" %><br />
<%= form.label :email, nil, :class => "label" %><br />
<%= form.text_field :email, :class => "inputBox",
:name => "email", :type => "text" %><br />
# Users controller
def new
@user = User.new
render :layout => "forms"
end
我認爲問題在於,數據沒有被以某種方式傳輸,並且因此AuthLogic並不認爲輸入是足夠的。你有什麼想法,爲什麼AuthLogic告訴我數據不能滿足其驗證?
------更多信息------
# User model
class User < ActiveRecord::Base
acts_as_authentic
belongs_to :authenticable, :polymorphic => true
end
# Users controller, def create:
def create
@user = User.new(params[:user])
if @user.save
flash[:notice] = "Account registered!"
redirect_back_or_default account_url
else
render :action => :new
end
end
您可以添加用於創建操作和用戶模型代碼的代碼嗎?嘗試通過紅寶石控制檯創建用戶,看看你是否得到任何錯誤。還有一個 – Vamsi 2010-05-23 05:10:24