为什么我的rails控制器不工作?

时间:2012-06-11 13:49:22

标签: ruby-on-rails

我正在尝试从我的控制器运行一个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。

3 个答案:

答案 0 :(得分:3)

将其更改为此

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

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

答案 1 :(得分:1)

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

这是一个很好的教程,说明你要完成的任务:

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

我希望它有所帮助。

祝你好运。

答案 2 :(得分:1)

尝试回复js格式:

format.js { render js: "alert('hey Trip!');" }