0
는 전 부문 모델 및 득점 가능 모델을 가지고, 그들은 다음과 같이 연결되어 있습니다 :재귀 적 스택 오버플로 오류없이 RSpec 테스트를 수행하려면 어떻게해야합니까?
class Division < ActiveRecord::Base
has_one :scoring, :as => :scorable
validates :name, :presence => true
validates :scoring, :presence => true
end
class Scoring < ActiveRecord::Base
belongs_to :scorable, polymorphic: true
validates :scorable, :presence => true
end
가 어떻게 이러한 모델의 유효성을 테스트 할 수 있습니다 ? 이들 각각에 대한 팩토리가 서로에 대한 참조를 포함하면 스택 오버플로가 발생합니다. 나는 아래 공장을 만들 경우, 나는 득점 가능 공백 오류가 될 수 없습니다 취득 (분명히) 나는 테스트 할 때 :
FactoryGirl.define do
factory :division do
name "Division"
organisation
association :scoring, factory: :scoring
end
FactoryGirl.define do
factory :scoring do
first 12
second 10
third 8
scorable nil
end
end
가 어떻게 두 모델에서 협회의 존재를 테스트 할 수 있습니다?
흠, 확인. 즉, 본부 (Division)가 항상 관련 득점을하고 있는지 확인하고 싶습니다. 이것을 시행하는 가장 좋은 방법은 무엇입니까? – kmc
@ kmc, 아무 방법이 없습니다. 그것은 잘못된 db 스키마입니다. 여기에 DB 구조를 확인하십시오 : http://guides.rubyonrails.org/association_basics.html#the-has_one-association –
내 DB를 구조화하는 더 좋은 방법이 있습니까? 여러 모델에 점수를 달 수 있기 때문에 (다형성) 그 중 일부는 선택 사항이지만 각 부문마다 전적으로 득점을 원합니다. 콜백에서 첨부 된 부분을 만들 수 있습니까? 아니면 실제로 DB 구조 자체에 문제가 있습니까? – kmc