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