【发布时间】:2011-10-21 15:46:10
【问题描述】:
我对 Rails 和 ajax 有点陌生,在尝试在我的控制器中调试一些相当简单的 ajax 请求时遇到了以下挫折。
我有以下代码:
respond_to do |format|
#format.html { render :json => db_clean_response.to_json }
format.json { render :json => db_clean_response.to_json }
end
当我尝试通过手动输入 URL 和参数来调试它时,控制器正确地准备了响应,但 Rails 以 HTTP/406 Not Acceptable 响应,除非我取消注释 format.html 命令。 (请注意,format.html 的内容仅用于尝试解决此问题。)
我不希望这个函数响应 html,因为它只适用于 ajax 的东西。此外,Rails 响应时将丑陋的 json 打印到空 html 上,我想使用 JSONView 之类的插件来美化它。
这里发生了什么?我觉得想要的结果很简单,但有些东西,在某个地方把它搞砸了。当我尝试调试 ajax 时,我希望我的浏览器能够拉出该死的 json 而不会跛脚:-(
【问题讨论】:
-
您在测试时是否在您的网址中使用
?format=js? -
...或将 .json 附加到您的网址?
-
^^^^ 解决了它......出于好奇,是否可以(容易)在没有 format=json 标志的情况下使其响应?
标签: ruby-on-rails ruby-on-rails-3 json controller