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 %>
我有一个网页,其中 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 %>