【问题标题】:Ruby on Rails: output JSON data from arrayRuby on Rails:从数组输出 JSON 数据
【发布时间】:2015-05-05 03:57:30
【问题描述】:

我有一个网页,其中 javascript 代码使用 XMLHTTPRequest() 从远程 URL 请求 JSON 数据。 该 URL 由 Ruby on Rails 应用程序提供。我试图从测试视图中打印一个硬编码的 JSON 字符串,但它被包裹在 HTML 标签(html、head、body 等)周围,因此它没有从 javascript 代码中重新识别为有效的 JSON 字符串。我想要的是直接从 Ruby 对象输出原始 JSON 字符串。

【问题讨论】:

标签: html ruby-on-rails ruby json xmlhttprequest


【解决方案1】:

您应该使用 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 %>

【讨论】:

  • 谢谢。那是代码必须在控制器中,对吗?那么对应的视图erb呢?可能根本不需要.erb文件,直接在route.rb上创建路由,不是吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多