2010-10-22 71 views
0

我有一個簡單的用戶類名字的唯一的以下驗證:Rails的:使用驗證用戶註冊/登錄

class User < ActiveRecord::Base 

    validates :name, :uniqueness => true, 

創建一個新用戶時,它的偉大工程。但是,當我檢查登錄表單時,用戶輸入他的名字,系統表示已經採取了這一措施,這沒有任何意義。

所以,我實現了一個獨立的valid_login?方法,但我不能把那裏unqueness檢查:

def valid_login? 
    validates :name, :uniqueness => false # doesn't work 
end 

這是我的控制器代碼:

def login 
    return unless request.post? 

    @user = User.new(params[:user]) 
    if @user.valid_login? 
     # Redirect to user's page 
    end 
end 

我用我自己的身份驗證這個系統非常簡單:我將用戶的ID +密碼的哈希存儲在cookie中。

當我不需要它時,我該如何開啓某些驗證?

+5

這不是預期的行爲。你的登錄控制器是什麼樣的? – 2010-10-22 17:09:35

+1

你也使用寶石來管理登錄/會話嗎?寧靜的身份驗證,設計,authlogic,還是你手卷你自己的登錄系統? – 2010-10-22 17:16:49

+0

Jordan&Brett,我已經更新了這個問題。 – Alex 2010-10-23 09:32:04

回答

0

我用:if /:unless參數解決了這個問題。