2011-06-22 58 views
1

我有一个基于railscasts身份验证的用户脚手架,它使用密码属性,我将如何允许测试通过并使密码不是表中的字段,而password_hash和password_salt是? 我在模型中有以下代码,它是我相信会导致用户不会增加的第一行。我怎样才能解决这个问题?Rails灯具和功能测试

validates_presence_of :password, :on => :create 
validates_confirmation_of :password 

我想我找到了问题,但不知道如何解决它。我调用下面的代码,即使我尝试将其添加到属性,但它不包含密码或password_confirmation。

post :create, user: @user.attributes 

回答

1

控制器设置密码这样的:

@user = User.new 
@user.name = params[:user][:name] 
@user.password = params[:user][:password] 

如果你仍然想这样做:

@user = User.create(params[:user]) 

这一行添加到用户模式:

attr_accessible :password 

请注意attr_accessible m ight导致安全漏洞。在使用它们之前了解有关attr_accessible & attr_protected的更多信息。