我正在尝试从我的控制器运行一个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。
答案 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!');" }