Rails部分渲染ajax成功

时间:2014-03-08 11:50:42

标签: ruby-on-rails ajax

大家好我正在开发一个带有ruby on rails的应用程序 我想在ajax上取得成功 这是控制器的动作

def re
    @question = Question.find_by_title(params[:qt])
    respond_to do |re|
      re.js {}
    end
  end

这是我的re.js.erb:

document.getElementById("details").value = "<%= @question.details %>";
document.getElementById("tag").value ="<%= @question.tag %>";
var ansForm =document.getElementById("new_answer");
ansForm.action=" http://localhost:3000/questions/<%= @question.id %>/answers" ;
document.getElementById("txt_title").innerHTML = "<%=@question.title %>";
document.getElementById("txt_tag").innerHTML = "<%=@question.tag %>";
$(".answers").empty();
$(".answers").append("<h1>Added Answers</h1>");
$(".answers").append("<%= render @question.answers %>");

但是我收到了这个错误:

GET http://localhost:3000/re?qt=Can%20I%20add%20anything%20to%20water? 500 (Internal Server Error) 

2 个答案:

答案 0 :(得分:1)

检查你的服务器日志(log / development.log),因为那里应该有更多的信息,而不仅仅是浏览器给你的“500 Internal”。

你的config / routes.rb怎么样? (也许它不接受GET / re)

答案 1 :(得分:0)

您的代码看起来没问题,但是会出现一个未公开显示的问题:

  
      
  1. Right-Click&gt; Inspect Element&gt; Network
  2.   
  3. 发送请求时,单击显示
  4. 的新项目   
  5. 它应该显示为红色 - 点击它&amp;点击preview
  6.   
  7. 查看“真实”错误
  8.   

您遇到的问题很可能是代码中的错误(Rails或JS)。确切知道的唯一方法是在开发控制台中显示呈现的错误消息

试试这个:

  #controller
  def re
    @question = Question.find_by_title(params[:qt])
    respond_to do |format|
      format.js
    end
  end

  #re.js.erb
  alert("hello");