2010-10-22 69 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参数解决了这个问题。