Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 当factory使用';时,无法将FactoryGirl.create(:user)的输出分配给:user变量;序列';_Ruby On Rails_Ruby_Capybara_Factory Bot - Fatal编程技术网

Ruby on rails 当factory使用';时,无法将FactoryGirl.create(:user)的输出分配给:user变量;序列';

Ruby on rails 当factory使用';时,无法将FactoryGirl.create(:user)的输出分配给:user变量;序列';,ruby-on-rails,ruby,capybara,factory-bot,Ruby On Rails,Ruby,Capybara,Factory Bot,我正在关注MichaelHartl关于RubyonRails(Rails3.2版)的伟大著作。我在第9.3.3节遇到了一些问题。分页 在我在spec/factories.rb使用sequence这样修改了我的工厂之后(注意,我已经注释掉了以前的版本): FactoryGirl.define do #工厂:用户做什么 #名字“迈克尔·哈特尔” #电子邮件“michael@example.com" #密码“foobar” #密码\u确认“foobar” #结束 工厂:用户做什么 序列(:user){

我正在关注MichaelHartl关于RubyonRails(Rails3.2版)的伟大著作。我在第9.3.3节遇到了一些问题。分页

在我在
spec/factories.rb使用
sequence
这样修改了我的工厂之后(注意,我已经注释掉了以前的版本):

FactoryGirl.define do
#工厂:用户做什么
#名字“迈克尔·哈特尔”
#电子邮件“michael@example.com"
#密码“foobar”
#密码\u确认“foobar”
#结束
工厂:用户做什么
序列(:user){n}“Person}{n}”
顺序(:email){| n |“person{n}@example.com”}
密码“foobar”
密码\u确认“foobar”
结束
结束
我无法在测试中再使用此选项:

let(:user){FactoryGirl.create(:user)}
例如,使用代码进行测试:

require'spec\u helper'
描述“用户页面”是什么
主题{page}
描述“索引”是什么
let(:user){FactoryGirl.create(:user)}
在(:all){30.times{FactoryGirl.create(:user)}
在(:all){User.delete_all}之后
在…之前做
有效登录用户
访问用户路径
结束
它{应该有_选择器('title',text:'All users')}
它{应该有_选择器('h1',文本:'All users')}
.
.
.
结束
返回错误,例如:

Failure/Error:before(:all){30.times{FactoryGirl.create(:user)}
命名错误:
未定义的方法“user=”用于#
#./spec/requests/user\u pages\u spec.rb:16:in'block(4级)in'
#./spec/requests/user\u pages\u spec.rb:16:in'times'
#./spec/requests/user\u pages\u spec.rb:16:in'block(3级)in'
我不能再使用这种语法(
let(:user){…}
)了,因为我现在正在创建元素序列,但似乎找不到解决方法


有什么想法吗?谢谢

我想你指的是
sequence(:name)
而不是你工厂的
sequence(:user)
。它在你的
user
模型中寻找一个
user=
方法,而不是
name=
方法。

我认为应该是
sequence(:name)
,而不是
sequence(:user)
。该死!太明显了,谢谢!