레일즈 3.2.13을 postgres, rspec 2.13, capybara 2.0.3 및 database_cleaner 0.9.1과 함께 사용하고 있습니다. AngularJS도 사용하고 있습니다. js : true (표준 레일 모델 인스턴스 작성) 양식 제출을 테스트하는 스펙이 있습니다. 표준 레일이 아닌 유일한 것은 AngularJS를 사용하여 Ajax를 통해이 양식을 제출한다는 것입니다. 사양이 실행될 때마다 다음과 같은 오류가 발생합니다.후크에서 오류가 발생했습니다. NoMethodError : 정의되지 않은 메소드 'each'for nil : NilClass (AngularJS)
An error occurred in an after hook
NoMethodError: undefined method `each' for nil:NilClass
occurred at /Users/morgler/.rvm/gems/[email protected]/gems/activerecord- 3.2.13/lib/active_record/associations/collection_association.rb:310:in `replace'
이후 사양이 실패합니다. 나에게 이것은 database_cleaner가 실행될 때 애프터 훅에서이 오류가 발생하는 것 같습니다.
$scope.saveOrderProcess = (event) ->
if $scope.orderProcess.id
$scope.orderProcess.$update()
else
OrderProcess.create($scope.orderProcess)
어떤 생각, 내가 여기서 무엇을 놓치고 :
config.before(:each) do
if Capybara.current_driver == :rack_test
DatabaseCleaner.strategy = :transaction
else
DatabaseCleaner.strategy = :truncation
end
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
코드입니다 폼의 제출 버튼을 클릭시 AngularJS와를 통해 양식을 제출 : 내 spec_helper.rb이있어? (order_process이 order_steps이 option_items있다) 나는 깊이 중첩 된 객체를 사용하고
: