Jbuilder没有使用gem rails-api

C40*_*404 7 jbuilder rails-api ruby-on-rails-4

我正在尝试使用jbuilder的rails-api gem,而我似乎无法使其工作

这是我的rails-api控制器/ jbuilder视图的示例

的Gemfile

gem 'jbuilder'
Run Code Online (Sandbox Code Playgroud)

控制器app/controller/users_controller.rb

 def show
  @user = User.find_by(id: params[:id])
 end
Run Code Online (Sandbox Code Playgroud)

查看app/views/users/show.json.builder

json.content format_content(@user.id)
Run Code Online (Sandbox Code Playgroud)

根据Jbuilder文档,这应该可以正常工作,但仍然没有返回任何内容.

谢谢您的帮助!

Vee*_*ees 19

我知道原来的问题可能已经解决了.不过我遇到了同样的问题,终于找到了答案.

由于rails-api被剥离了版本的rails,因此缺少一些功能(在这种情况下是隐式的rendaring视图),我们需要明确地添加它们.

最简单的解决方案是将ActionController :: ImplicitRender添加到ApplicationController

# app/controllers/application_controller.rb
class ApplicationController < ActionController::API
  include ActionController::ImplicitRender
end
Run Code Online (Sandbox Code Playgroud)

  • 在Rails 5中,你可能还需要添加`include ActionView :: Layouts` (3认同)
  • 另外,请确保在 Gemfile 中取消注释“ gem 'jbuilder' ”!浪费了几个小时找到这个。:( (2认同)