我正在使用Mongoid。我有一个对象:
class Employee
include Mongoid::Document
field :name_first, type: String
field :name_last, type: String
field :name_other, type: Array, default: []
field :title, type: String
field :education, type: Hash, default: {}
field :languages, type: Array, default: []
field :phone, type: Hash, default: {}
field :address, type: Hash, default: {}
field :email, type: Array, default: []
field :url, type: Array, default: []
field :history, type: Array, default: []
field :profile, type: String
field :social_media, type: Hash, default: {}
field :last_contact, type: Time
field :signed_up, type: Date
belongs_to :user
belongs_to :practice
end
而且,我正在尝试使用Fabrication,并遇到问题。宝石安装好了。在/spec/fabricators/employee_fabricator.rb我有
Fabricator :employee do
end
在my_controller_spec.rb中我有:
describe CasesController do
describe "viewing cases" do
before(:each) do
Fabricate(:employee)
end
it "allows viewing the cases index page" do
get 'index'
response.should_not be_success
end
end
end
当我在终端中运行'rspec spec'时,我得到:
Failures:
1) CasesController viewing cases allows viewing the cases index page
Failure/Error: Fabricate(:employee)
ArgumentError:
wrong number of arguments (2 for 1)
这里发生了什么?我尝试了各种排列,其中一些会抛出其他错误,但没有任何运行。如果不调用Fabricate(:employee)行,它会按预期运行,但到目前为止只有空测试...
答案 0 :(得分:0)
使用活动记录时遇到了同样的问题。
我发现Fabrication gem 2.6版将第二个属性传递给active_record / base.rb初始值设定项:{:without_protection => true}
这种变化似乎是在Rails 3.2中(我在3.0上)。新参数开始由版本2.0.2中的Fabrication gem传递,所以我将我的gem文件中的制作gem降级到2.0.1,直到我们将Rails升级到3.2
所以,基本上,我的建议是将Fabrication gem降级到2.0.1或将Rails升级到3.2