1

尝试使用 Jbuilder 为我的应用程序创建一些 JSON 视图,但视图显示为空。但是,在控制台中使用构建器代码就可以了。

控制器代码:

@placements = Placement.all
respond_to do |format|
  format.html
  format.json
end

Jbuilder 视图(index.json.builder):

Jbuilder.encode do |json|
  json.array!(@placements) do |json, placement|
    json.id placement.id
    json.name placement.name
  end
end

访问http://localhost:3000/placements.json结果是一个空白页面。删除respond_to格式块没有帮助。如果我在控制器中使用以下代码,我会得到一个输出,但显然不是 Jbuilder 输出。

respond_to do |format|
  format.html
  format.json {render json: @placements}
end

有没有其他人看到这个问题?

4

3 回答 3

1

@Robin - 它渲染了错误的模板,但我的扩展名错误。我正在使用builder而不是jbuilder.

于 2012-04-03T20:12:35.283 回答
0

我认为你需要删除 f

respond_to do |format|
  format.html
  format.json {render json: @placements}
end
于 2012-04-14T15:48:11.583 回答
0

与 jbuilder 2.6.0 rails 5.0.0 和现有视图的rails 规范中的相同问题。

在提到的问题解决方案中建议:

通过添加带有集合或资源的渲染类型来解决

例如对于index动作替换:

render :index

和:

render :index, json: @collection

或者通过像这样配置 rspec 来解决:

# spec/spec_helper.rb
RSpec.configure do |config|
  config.render_views = true
end

或者

class ApplicationController < ActionController::API
  include ActionView::Rendering
end
于 2017-02-25T22:15:47.917 回答