ruby-on-rails - Rails 3 和 Factory Girl 仅在传入属性时创建用户

标签 ruby-on-rails ruby rspec authlogic factory-bot

我正在使用 Rails 3 rc、Factory Girl、Rspec 和 Authlogic。 有什么方法或原因会发生这种情况:

当我这样创建一个用户时:

@user = Factory(:user)

我遇到密码确认“太短”的问题。

我的工厂.rb是

  Factory.define :user do |u| 
      u.username   "Test User"
      u.email      "TestUser@gmail.com"
      u.password   "aoeuaoeu"
      u.password_confirmation   "aoeuaoeu"
      #u.password_confirmation {|u| u.password}
  end

但是当我手动传入 :password 和 :password_confirmation 创建一个时, 它工作得很好。

@user = Factory(:user, :password => "aoeuaoeu", 
                       :password_confirmation => "aoeuaoeu")

有人知道是什么原因造成的吗?

最佳答案

这似乎与这里的人遇到的问题类似:

Authlogic and password and password confirmation attributes - inaccessible?

密码和确认必须像这样在属性散列中传递:

before(:each) do  
    @attr = {  
    :name => "Example User",  
    :email => "user@example.com",  
    :password => "foobar",  
    :password_confirmation => "foobar"  
    }  
end  

更多信息见:

http://railstutorial.org/chapters/modeling-and-viewing-users-two#top

关于ruby-on-rails - Rails 3 和 Factory Girl 仅在传入属性时创建用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3586993/

相关文章:

ruby-on-rails - Rails,当使用 destroy_all 时,有没有办法返回记录数(如果有删除)?

c - 如何从 Ruby 调用 Windows DLL 函数?

ruby - 如何通过 RSpec 模拟使用 sorbet 类型检查?

ruby-on-rails - 转换时间DD :hh:mm:ss format into seconds in Rails 3

ruby-on-rails - 无法写入未知属性 `scrapbook_entry_id'

mysql - 使用ROR时遇到很多问题

ruby-on-rails - 我如何找到 Ruby 中的标准偏差?

ruby - 在 Windows 7 上构建 ruby

ruby-on-rails - Rspec 模型测试 - 模型中的 current_user

ruby-on-rails - Shoulda Matchers validate_uniqueness_of 范围到多列