RubyonRails:从数组输出JSON数据



我有一个网页,其中javascript代码使用XMLHTTPRequest()从远程URL请求JSON数据。URL由RubyonRails应用程序提供。我试图从测试视图打印一个硬编码的JSON字符串,但它被HTML标记(HTML、head、body等)包裹住了,所以它没有从javascript代码中重新配置为有效的JSON字符串。我想要的是直接从Ruby对象输出一个原始JSON字符串。

您应该使用respond_to块(以防您的操作处理多种格式),或者明确声明您想要呈现json(如果您的操作只处理json,则更容易):

class SomeController < ApplicationController
  def some_action
    @data        = Data.find(1)
    @string_json = '{ "key": "value" }'
    render json: @data # render json: @string_json also works
  end
end

编辑:

如果你试图只在页面上呈现json字符串,你应该为你的操作禁用一个通用布局:

class SomeController < ApplicationController
  layout 'application', :except => :some_action
  def some_action
    @json_string = ' .... '
  end
end

some_action.erb:

<%= @json_string %>

最新更新