Ruby on Rails: 从数组输出 JSON 数据

Ruby on Rails: output JSON data from array

我有一个网页,其中 javascript 代码使用 XMLHTTPRequest() 从远程 URL 请求 JSON 数据。 URL 由 Rails 应用程序上的 Ruby 提供服务。我试图从测试视图中打印一个硬编码的 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 %>