Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 Jbuilder不使用gem rails api_Ruby On Rails 4_Jbuilder_Rails Api - Fatal编程技术网

Ruby on rails 4 Jbuilder不使用gem rails api

Ruby on rails 4 Jbuilder不使用gem rails api,ruby-on-rails-4,jbuilder,rails-api,Ruby On Rails 4,Jbuilder,Rails Api,我正在用jbuilder尝试rails api gem,但我似乎无法让它工作 下面是我的rails api控制器/jbuilder视图示例 Gemfile gem 'jbuilder' 控制器应用程序/控制器/用户\u Controller.rb def show @user = User.find_by(id: params[:id]) end 查看app/views/users/show.json.builder json.content format_content(@user

我正在用jbuilder尝试rails api gem,但我似乎无法让它工作

下面是我的rails api控制器/jbuilder视图示例

Gemfile

gem 'jbuilder'
控制器应用程序/控制器/用户\u Controller.rb

 def show
  @user = User.find_by(id: params[:id])
 end
查看app/views/users/show.json.builder

json.content format_content(@user.id)
根据Jbuilder文档,这应该可以正常工作,但仍然没有返回任何内容


谢谢你的帮助

您似乎将jbuilder视图命名错误。

它应该是
app/views/users/show.json.jbuilder
而不是
app/views/users/show.json.builder

我知道原来的问题可能已经解决了。尽管如此,我还是遇到了同样的问题,最终找到了答案

由于rails api是rails的精简版,因此缺少一些功能(在本例中是视图的隐式呈现),我们需要显式添加它们

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

# app/controllers/application_controller.rb
class ApplicationController < ActionController::API
  include ActionController::ImplicitRender
end
#app/controllers/application_controller.rb
类ApplicationController
因为我在这个问题上没有找到正确的答案,所以我就离开了rails api,从一个全新的rails应用程序中构建了自己的api。现在一切都很好。在Rails 5中,您可能还需要添加
include ActionView::Layouts
另外,请确保取消Gemfile中的“gem'jbuilder'”注释!浪费了几个小时找这个(