【问题标题】:Factory girl problems accessing certain attributes工厂女孩访问某些属性的问题
【发布时间】:2011-09-06 19:29:11
【问题描述】:

我有一个用户模型和一个属于用户的操作员模型。我创建了一些关联它们的工厂(在我的功能中,操作员注册时会创建一个用户帐户)所以我做了这一步:

def create_operator_with_user(operator_name)
  user = Factory(:user)
  puts "MY PASS: #{user.password}"
  operator = Factory(:operator, :chief_pilot_or_business_owner => operator_name, :user_id => user.id)
  pew = User.find(operator.user_id)
  puts "USER: #{operator.user.inspect} PASS: #{operator.user.password} PEWPASS: #{pew.password}"
end

这是我的用户工厂:

Factory.define :admin, :class => User do |f|
  f.sequence(:login)            { |n| "admin#{n}"}
  f.is_admin                    true
  f.password                    "password"
  f.password_confirmation       "password"
  f.sequence(:email)            { |n| "test#{n}@test.com"}
end

Factory.define :user, :parent => :admin do |f|  
  f.sequence(:login)            { |n| "user_#{n}" }
  f.sequence(:email)            { |n| "the_user_#{n}@asdf.com" }
end

我尝试运行我的功能,结果如下:

MY PASS: password
USER: #<User id: 181, login: "user_1", email: "the_user_1@asdf.com", crypted_password: "e9f6932a07cbe6e49073a331530f9dc01a3482502d25770be00...", password_salt: "YEjT9Q8EGYdrNh4qGZda", persistence_token: "259a61440f6ecd001e79a4aaf1c5c343e50be04388bbf1718c3...", created_at: "2011-06-02 04:24:34", updated_at: "2011-06-02 04:24:34", is_admin: true> 
PASS:  
PEWPASS:

所以问题是,用户确实有密码,因为它是允许创建的,更不用说它是在使用工厂创建后打印出来的。问题是,当我尝试通过 User.find(user.id) 或 operator.user 访问密码时,为什么密码是空白的?

如果有帮助,这是为了 authlogic

【问题讨论】:

    标签: ruby-on-rails authentication authlogic factory-bot


    【解决方案1】:

    这行得通吗?

    Factory.define :admin, :class => :user do |f|
    

    【讨论】:

    • 我的工厂没有失败,更多的是我无法访问密码属性
    • 哦。在这种情况下,您不想显示类似 #{user.crypted_pa​​ssword}" 的内容吗?
    【解决方案2】:

    似乎我试图访问 authlogic 的受保护属性,这就是为什么即使我再次尝试获取用户对象也无法访问密码的原因。我的解决方案是改用全局变量 (@user),这样我就可以在其他步骤中访问它。

    【讨论】:

      猜你喜欢
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多