由于模型中的to_s方法,工厂未注册错误

时间:2014-01-26 13:00:19

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

我为模型ABCD创建了工厂,它的相关模型包括模型“another_model”,它与ABCD有belongs_to关系。

模型ABCD有一个返回

的to_s方法
def to_s
    "Check: #{another_model.check_number} SSNUM: #{something_some_val}"
end

现在,当我尝试在ABCD_Controller类中测试一个动作时,我得到了这个错误。

  

失败/错误:get:document_save,{“abcd”=> attributes_for(FactoryGirl.create(:a_patpay))}

     
    

引发ArgumentError:

         
      

工厂未注册:检查:456465 SSNUM:06122469

    
  

现在Check和SSNUM显然不是ABCD模型的属性,它们只是模型中to_s方法返回的字符串。想知道为什么FactoryGIrl认为它们是未注册的属性......

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

据推测,FactoryGirl.create(:a_patpay)被定义为返回ABCD的实例,该实例不是FactoryGirl.attributes_for的有效参数,并且由于{的定义而打印出来,因为{ {1}}。