FactoryGirl を使用して、Parent has_many Entries の関連付けを持つテスト データベースを作成しようとしています。この時点で、親を空白にすることはできないという ActiveRecord 検証エラーがスローされます。私はこれに苦労しており、この関連付けを使用してこのテストデータベースを作成するための多くの方法を試しました。私は近くにいると思いますが、私は近くにさえいないかもしれませんし、基本的なエラーがあるかもしれないので、あらゆるアドバイスは大歓迎です.
私の推測では、ハッシュ {parent_id::id} がエントリ ファクトリに渡されていません。それは検証に失敗します。しかし、それが実際に当てはまるかどうかはわかりませんし、たとえそうであったとしても、それを修正する方法がわかりません。ご協力いただきありがとうございます...
エラーは次のとおりです。
ActiveRecord::RecordInvalid: 検証に失敗しました: 親を空白にすることはできません
RSpec 呼び出しは次のとおりです。
before(:all) do
rand(11..25).times { FactoryGirl.create(:parent) }
visit "/parents?direction=asc&sort=parent_blog"
end
after(:all) do
Parent.delete_all
end
親モデルは次のとおりです。
class Parent < ActiveRecord::Base
has_many :entries, dependent: :destroy
accepts_nested_attributes_for :entries, :allow_destroy => :true
validates :parent_blog, presence: true,
uniqueness: true
end
エントリーモデルは次のとおりです。
class Entry < ActiveRecord::Base
belongs_to :parent
validates :entry_blog, presence:true,
uniqueness: true
validates :parent_id, presence: true
end
親工場は次のとおりです。
FactoryGirl.define do
factory :parent do
sequence(:parent_blog) { |n| "http://www.parent%.3d.com/ss" % n }
entries { rand(5..15).times { FactoryGirl.create(:entry, parent_id: :id) } }
end
end
エントリ ファクトリは次のとおりです。
FactoryGirl.define do
factory :entry do
sequence(:entry_blog) { |n| "http://www.parent%.3d.com/ss/entry%.3d" % [n, n] }
parent_id { :parent_id }
end
end