2016-03-27 14 views
0

Rails 4.2.5 kullanıyorum, imha eylemi için bir denetleyici sınaması yazdım, imve.js.erb dosyasını yok etmek ve kullanmak için ajax çağrısı kullanıyorum. Lütfen js formatını çağırdığında testi geçmek için aşağıdaki sorunu çözmeme yardımcı olun, aşağıdaki hataları yapıştırıyorum.js.erb biçimi ile denetleyici denetleyicisi

def destroy 
    @status = @song.destroy 
    respond_to do |format| 
     format.js 
    end 
    end 

SongsControllerTest # test_should_destroy_song:

ActionController::UnknownFormat: ActionController::UnknownFormat 
     app/controllers/songs_controller.rb:36:in `destroy' 


songs_controller_test.rb  
test "should destroy song" do 
    assert_difference('Song.count', -1) do 
     delete :destroy, id: @song 
    end 

    get :destroy, format: 'js' 
    end 

destroy.js.erb

var element = document.getElementById("<%="song#{@song.id}" %>");  
<%if @status%> 
element.parentNode.parentNode.remove(); 
<%end%> 
+0

Lütfen bu soruya uygun şekilde kodu biçimlendirin ve test kodunu de gösterin. – BoraMa

+0

Muhtemelen [Raylarda, işlevsel bir Javascript yanıt formatını nasıl test edersiniz?] 'Nin aynı kopyasının (http://stackoverflow.com/questions/2358214/in-rails-how-do-you-functional-test-a-javascript- yanıt-formatı) – BoraMa

+0

Zaten soruyu sormadan önce ive bağlantıyı denedim, bu hatayı çözmedi –

cevap

2

destroy denetleyici eylem normalde DELETE HTTP yöntemi tepki, bu nedenle zaman format seçeneğini kullanmalıdır çağrılıyor delete:

test "should destroy song" do 
    assert_difference('Song.count', -1) do 
    delete :destroy, id: @song, format: :js 
    end 
end