我有一個Company
模型has_many
Users
那belongs_to
的Company
。我還在Company
模型中調用了一個我希望避免的外部服務。我正在嘗試使用linter設置FactoryGirl,但它一直在拋出錯誤。工廠女孩錯誤嵌套屬性和導軌5
這裏的控制器的外觀:
class CompanyController < ApplicationController
...
def new
@company = Company.new
@user = @company.users.build
end
def create
@company = Company.new(company_params)
@user = @company.users.first
...
end
...
end
控制器正常工作在本地主機上,並在生產,所以用代碼功能一定沒問題 - 那就是我有一個測試的問題。
我想創建沿着這些路線工廠:
FactoryGirl.define do
factory :company do
name Faker::Company.name
association :user, strategy: :build
before(:create) do |company|
company.class.skip_callback(:create, :before, :my_callback)
end
end
factory :user do
email Faker::Internet.email
password "password"
password_confirmation "password
end
end
的問題是,我得到一個錯誤,指出以來belongs_to
用戶一個company must exist
需要和公司的一個錯誤說undefined method user=
,因爲我試圖建立多個用戶。我也嘗試了許多其他變體,最終不會跳過回調(例如在用戶工廠中創建公司)。
我希望有人知道如何建立一個兼容這種類型的控制器設置的工廠,或者如果有不同的方式,我應該建立沒有嵌套屬性的控制器?
在此先感謝您的幫助!