mixin을 통해 after_save 콜백을 주입하려고하는데, create
메서드가 호출 될 때 콜백이 두 번 호출되고 있음을 알리는 rspec 테스트가 있습니다. 이 메소드가 두 번 호출되는 이유는 무엇입니까? 실패 메시지가레일스 after_save 콜백이 여러 번 호출되었습니다
it 'should call callback' do
Product.any_instance.should_receive(:update_linkable_attachments).once
Product.create(:name=>'abc')
end
입니다
다음 RSpec에 테스트가 실패 : 여기
Failure/Error: Unable to find matching line from backtrace
(#<Product:0xb7db738>).update_linkable_attachments(any args)
expected: 1 time
received: 2 times
이
module MainModuleSupport
def self.included(base)
base.instance_eval("after_save :update_linkable_attachments")
end
def update_linkable_attachments
LinkedAttachment.delay.create_from_attachment self
end
end
class Product < ActiveRecord::Base
include MainModuleSupport
...
end
제품 클래스는 다른 코드가 코드,하지만 어떤이 없습니다 다른 콜백.
레일 버전? 몇 가지 릴리스에서이 문제가 있다고 생각합니다. – tadman
버전 3.0.8을 실행 중입니다. –
제품과 관련된 제품이라면 LinkedAttachment가 생성 될 수 있습니다. – charlysisto