Factory_girl 工厂内的引用无法正常工作

发布于 2024-10-13 04:21:57 字数 1080 浏览 1 评论 0原文

Factory.define :person do |p|
  p.first_name { User.generate_activation_code(6) }
  p.last_name { User.generate_activation_code(6) }
  p.username { "p#{first_name}_#{last_name}" }
  p.email { "#{username}@mail.com" }
  p.password { "password" }
  p.password_confirmation { "password" }
end

给出这个错误:

未定义的局部变量或方法 first_name' 代表 main:Object (名称错误) ./test/factories/user_factories.rb:4 ./features/step_definitions/generic_steps.rb:3 ./features/step_definitions/generic_steps.rb:2:in每个' ./features/step_definitions/generic_steps.rb:2:in /^这些 (.+) 记录$/' 特征/transaction_import.feature:7:in鉴于这些人的记录'

这是我的配置(Ruby 1.8.7)

Using cucumber (0.10.0) 
Using cucumber-rails (0.3.2) 
Using factory_girl (1.3.3) 
Using railties (3.0.3) 
Using factory_girl_rails (1.0.1) 
Using rails (3.0.3) 
Using rspec-core (2.4.0) 
Using rspec-expectations (2.4.0) 
Using rspec-mocks (2.4.0) 
Using rspec (2.4.0) 
Using rspec-rails (2.4.1) 
Using webrat (0.7.3) 
Factory.define :person do |p|
  p.first_name { User.generate_activation_code(6) }
  p.last_name { User.generate_activation_code(6) }
  p.username { "p#{first_name}_#{last_name}" }
  p.email { "#{username}@mail.com" }
  p.password { "password" }
  p.password_confirmation { "password" }
end

Gives this error:

undefined local variable or method
first_name' for main:Object
(NameError)
./test/factories/user_factories.rb:4
./features/step_definitions/generic_steps.rb:3
./features/step_definitions/generic_steps.rb:2:in
each'
./features/step_definitions/generic_steps.rb:2:in
/^these (.+) records$/'
features/transaction_import.feature:7:in
Given these person records'

Here's my configuration (Ruby 1.8.7)

Using cucumber (0.10.0) 
Using cucumber-rails (0.3.2) 
Using factory_girl (1.3.3) 
Using railties (3.0.3) 
Using factory_girl_rails (1.0.1) 
Using rails (3.0.3) 
Using rspec-core (2.4.0) 
Using rspec-expectations (2.4.0) 
Using rspec-mocks (2.4.0) 
Using rspec (2.4.0) 
Using rspec-rails (2.4.1) 
Using webrat (0.7.3) 

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

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

发布评论

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

评论(2

趴在窗边数星星i 2024-10-20 04:21:57

你有Person类吗?看起来应该是 User

Factory.define :person, :class => User do |p|

依赖属性的文档:

Do you have a Person class? Looks like it should be User instead:

Factory.define :person, :class => User do |p|

Documentation for dependent attributes:

池予 2024-10-20 04:21:57

你需要改变你的路线:

 p.username { "p#{first_name}_#{last_name}" }

p.username {|x| "#{x.first_name}_#{x.last_name}" }

我有用。

You need to change your line:

 p.username { "p#{first_name}_#{last_name}" }

to

p.username {|x| "#{x.first_name}_#{x.last_name}" }

That worked for me.

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