工厂不会设置密码和密码确认

发布于 2024-11-14 06:11:20 字数 564 浏览 1 评论 0 原文

我的 User.rb 具有:

attr_accessor :password, :password_confirmation
attr_accessible :password, :password_confirmation

用户的我的 plant_girl 是:

Factory.define :user do |u|

  u.password "my_password"
  u.password_confirmation "my_password"

end

保存对象时,我的 User.rb 设置 crypto_password 字段。

似乎我在工厂中设置的值(密码)根本没有被设置。

在我的测试中我必须做:

it "should ...." do
  user = Factory(:user)

  user.password = "abc123"

end

为什么会这样?

我将密码属性既作为访问者又作为可访问的。

有什么冲突吗?

My User.rb has:

attr_accessor :password, :password_confirmation
attr_accessible :password, :password_confirmation

My factory_girl for a user is:

Factory.define :user do |u|

  u.password "my_password"
  u.password_confirmation "my_password"

end

My User.rb sets the encrypted_password field when the object is saved.

It seems when the values that I set in my factory (the passwords), are not being set at all.

In my tests I have to do:

it "should ...." do
  user = Factory(:user)

  user.password = "abc123"

end

Why would this be the case?

I have the password attribute as both an accessor and accessible.

Is something conflicting?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吐个泡泡 2024-11-21 06:11:20

我认为,上述问题在于这些 attr_accessor 字段未保留在数据库中,因此在 factories.rb 中声明时它们会“丢失”。解决方案是在从工厂创建新对象时显式设置它们:

user = Factory(:user, :password => '123')

另请参阅:

The problem with the above, I believe, is that those attr_accessor fields are not persisted in the database, so they are 'lost' when declared in factories.rb. The solution for that is to set them explicitly when creating a new object from factory:

user = Factory(:user, :password => '123')

Also see:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文