【问题标题】:Jbuilder not working with gem rails-apiJbuilder 不使用 gem rails-api
【发布时间】:2014-11-15 20:08:59
【问题描述】:

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

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

宝石文件

gem 'jbuilder'

控制器 app/controller/users_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 文档,这应该可以正常工作,但仍然没有返回任何内容。

感谢您的帮助!

【问题讨论】:

  • 由于我在这个问题上没有找到合适的答案,我只是离开了 rails-api 并从一个全新的 rails 应用程序构建了我自己的 api。现在一切都很好。

标签: ruby-on-rails-4 jbuilder rails-api


【解决方案1】:

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

由于 rails-api 是 rails 的精简版,因此缺少某些功能(在本例中为视图的隐式渲染),我们需要显式添加它们。

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

# app/controllers/application_controller.rb
class ApplicationController < ActionController::API
  include ActionController::ImplicitRender
end

【讨论】:

  • 在 Rails 5 中,您可能还需要添加 include ActionView::Layouts
  • 另外,确保在 Gemfile 中取消注释“gem 'jbuilder'”!浪费了几个小时才找到这个。 :(
【解决方案2】:

您似乎错误地命名了您的 jbuilder 视图。
应该是app/views/users/show.json.jbuilder 而不是app/views/users/show.json.builder。

【讨论】:

    猜你喜欢
    • 2020-02-19
    • 2012-07-16
    • 2015-06-11
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 2017-07-28
    相关资源
    最近更新 更多