2012-07-13 74 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