Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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_girl一起创建模型?_Ruby On Rails_Ruby_Ruby On Rails 4_Rspec_Factory Bot - Fatal编程技术网

Ruby on rails 如何与factory_girl一起创建模型?

Ruby on rails 如何与factory_girl一起创建模型?,ruby-on-rails,ruby,ruby-on-rails-4,rspec,factory-bot,Ruby On Rails,Ruby,Ruby On Rails 4,Rspec,Factory Bot,在我的模型中,我有一些上下文验证: class User validate :permissions, on :admin def permissions error.add(:permissions, 'Must be set as admin') unless permissions.include? :admin end end 而且用法很简单: user.save(context: :admin) 问题是:如何通过factory_girl检查验证是否在ad

在我的模型中,我有一些上下文验证:

class User  
 validate :permissions, on :admin

 def permissions   
   error.add(:permissions, 'Must be set as admin') unless permissions.include? :admin  
 end
end
而且用法很简单:

user.save(context: :admin)

问题是:如何通过factory_girl检查验证是否在
admin
上下文中运行?例如,
create:user,context::admin
不起作用。

我不认为factory\u girl提供了使用该选项创建
或保存
的方法。但是,您可以使用factory_girl的
build

FactoryGirl.build(:user).save!(context: :admin)
的属性:

User.create!(FactoryGirl.attributes_for(:user), context: :admin)

当您使用FactoryGirl创建用户对象时,是否出现任何错误?什么不起作用?如果我运行
create:user
就不会有错误。但是如果我运行
create:user,context::admin
我会得到未定义的方法context='`您的模型中定义了属性访问器吗?不,这样做不是不对吗?尝试向您的模型中添加
attr\u访问器::权限
。谢谢您的想法,我正在做类似的事情