이전 코드 블록에서 오류가 발생하지 않는 경우에만 실행하고 싶은 코드 섹션이 있습니다. 해키처럼 보이는 솔루션을 구현했으며 Ruby에서 더 좋은 방법이 있다고 확신합니다.Refactor : 예외가 throw되지 않은 경우에만 코드 블록 실행
existing_comments = Comment.all
catch(:creation_failure) do
begin
ActiveRecord::Base.transaction do
results.each do |row|
Comment.create!(row)
end
end
rescue
throw(:creation_failure)
end
existing_comments.destroy_all
end
있어 꼭이 작업을 수행 할 수있는 더 좋은 방법이 될 :
는 여기에 지금까지 무슨이다.
이렇게하면 destroy_all 메서드의 예외도 무시됩니다. 질문 작성자가 원한다면 나는 모른다. – ehabkost
시작할 수있는 구조 블록을 가지고있는 유효한 루비가 있습니까? – vrish88
vrish88- 예, 할 수 있습니다 – jschorr