0

我使用on Rails的2.3.16製作寶石V-2.5.0,但是當我運行單元測試的情況下得到了以下錯誤:製造:: MisplacedFabricateError而on Rails的使用製作寶石2.3.16

下面是代碼片段:

第一種情況

Fabricate(:some_modal) 
Fabrication::MisplacedFabricateError: # from /Users/user_xyz/.rvm/gems/ree-1.8.7-  [email protected]/gems/fabrication-2.5.0/lib/fabrication.rb:51:in `Fabricate' from (irb):3 

第二種情況

Fabricate(:some_other_modal) 
SyntaxError: /Users/user_xyz/.rvm/gems/[email protected]/gems/fabrication-2.5.0/lib/fabrication/generator/active_record.rb:8: syntax error, unexpected ':', expecting ')' ...ttributes, without_protection: true) 

有人可以幫我解決這些。

模態類別:

class ErrorCode 
     attr_accessor :mappings 
     has_many :error_code_mappings 
    end 

製造商:

Fabricator(:error_code) do 
    application_id 77 
    error_code_mappings(:count => 3) { |error_code, i| Fabricate.build(:error_code_mapping,  :error_code => Fabricate.build(:error_code, :code => error_code.code + i))} 
end 

單元測試文件:

require 'test_helper' 

class ErrorCodeTest < ActiveSupport::TestCase 
    context "ErrorCode" do 
    setup do 
     @error_code = Fabricate.build(:error_code) 
     assert(@error_code.valid?) 
    end 
    should "have setter for mapping attribute" do 
     assert_respond_to(@error_code, :mappings=) 
    end 
end 

回答

0

製造需要Ruby 1.9和海格版本。而按照給定的代碼片段使用的紅寶石的當前版本是REE 1.8.7.

升級你的紅寶石版本&然後你可以得到它的工作!