1

我正在尝试从我的控制器运行 javascript 行作为对 AJAX 调用的响应:

respond_to do |format|
  if params[:return_to] == 'monthly_calendar'
    render js: "alert('hey Trip!');"
  else
    format.js   { render :partial => @task, layout: false }
    format.html { redirect_to things_url }
    format.json { render :json => @object.to_json }
    format.xml do
      if @task.new_record?
        render :xml => @task.errors.to_xml
      else
        render :xml => @task.to_xml, :status => '201 Created'
      end
    end
  end

相反,这会返回 406。有什么想法吗?

它肯定会在此声明中进行正确的调用。但不知道如何处理 javascript 调用,并返回 406。

4

3 回答 3

3

改成这个

respond_to do |format|
   if params[:return_to] == 'monthly_calendar'
      format.js { render js: "alert('hey Trip!');" }
   else
  .....

因为您没有指定响应的格式,例如 format.html { #your code here } 当 params[:return_to] == 'monthly_calendar' 时。查看respond_to的文档以获取更多信息。

于 2012-06-11T13:55:45.947 回答
1

您可以渲染完整视图task.js.erb而不是局部视图。

这是关于您要完成的工作的一个很好的教程:

http://blog.bernatfarrero.com/jquery-and-rails-3-mini-tutorial/

我希望它有所帮助。

祝你好运。

于 2012-06-11T13:57:04.380 回答
1

尝试响应js格式:

format.js { render js: "alert('hey Trip!');" }
于 2012-06-11T13:58:07.280 回答