使Jbuilder与Rails 5 API模式一起工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使Jbuilder与Rails 5 API模式一起工作相关的知识,希望对你有一定的参考价值。

我想在API模式下使用Jbuilder和Rails 5.0.0.beta1.1。开箱即用,即使在创建app / views目录时它也不起作用。

例如,我有:

# app/controllers/tests_controller.rb
class TestsController < ApplicationController
  # The requests gets inside the action
  def test
  end
end

# app/views/tests/test.json.jbuilder
json.test "It works!"

我得到的错误是

No template found for TestsController#test, rendering head :no_content

我想我必须改变配置文件中的一些东西。我需要做什么?

答案

像这样从控制器做一个显式渲染:

render 'controller_name/action.json.jbuilder'
另一答案

使用API​​模式。

你需要包括像波纹管一样的模块

class ApplicationController < ActionController::API
  include ActionController::ImplicitRender # if you need render .jbuilder
  include ActionView::Layouts # if you need layout for .jbuilder
end
另一答案

我得到了同样的错误,但在我的情况下,我只是忘了在Gemfile中添加jbuilder gem:

gem 'jbuilder', '~> 2.5'

以上是关于使Jbuilder与Rails 5 API模式一起工作的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 4 中用于 JSON 处理的 jbuilder vs rails-api/active_model_serializers

Rails 的 API

如何在 Jbuilder 中使用带有 Gon gem 的 Rails 助手?

为啥 Rails 找不到我的 jbuilder 模板或不渲染它?

如何使反应路由器与静态资产、html5 模式、历史 API 和嵌套路由一起工作?

将Chartkick与rails 5.2 api应用集成?