2012-07-13 178 views
1

我正在嘗試使用Rails進行AJAX調用。該調用是對我的控制器中的change_profile操作。此行動的內容如下:Rails:渲染文本給出missingtemplate錯誤

def change_profile 
    @test = params[:test] 
    puts "AAAAAAA #{@test}" 
    respond_to do |format| 
     format.html 
     format.js 
    end 
    render(:text => "FINISHED THE AJAX REQUEST") 
end 

當我打電話這一點,但是,Rails的控制檯說:

ActionView::MissingTemplate (Missing template main/change_profile .... 

我不明白爲什麼會這樣。由於我正在渲染文本,它不應該知道不要試圖找到該模板,只是渲染文本?

+0

這意味着你沒有一個叫change_profile視圖中添加您的代碼。 – 2012-07-13 01:06:10

+1

對,爲什麼我需要一個?我只是試圖將文本發送回客戶端以迴應A​​JAX請求,視圖將完全是多餘的。我是否以正確的方式去做這件事? – 2012-07-13 01:07:13

+0

如果你想呈現其他東西,爲什麼你有'respond_to'塊w/HTML和JS格式? – 2012-07-13 01:08:50

回答

4

當沒有{}時,respond_to塊會查找名爲change_profile.erb.js或某個其他change_profile.xxx.js的文件。在respond_to

def change_profile 
    @test = params[:test] 
    puts "AAAAAAA #{@test}" 
    respond_to do |format| 
     format.html 
     format.js { 
     render :text => "FINISHED THE AJAX REQUEST" 
     } 
    end 
end 
+0

完美,謝謝! – 2012-07-13 01:16:09