Jbuilder не работает с gem rails-api

Я пробую rails-api gem с jbuilder, и я не могу заставить его работать

Вот образец моих представлений контроллера rails-api / jbuilder

Gemfile

gem 'jbuilder'

Приложение контроллера / контроллер / 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, это должно работать нормально, но по-прежнему ничего не возвращается.

Спасибо за помощь!


person C404    schedule 21.09.2014    source источник
comment
Поскольку я не нашел правильного ответа на этот вопрос, я просто оставил rails-api и построил свой собственный api из нового приложения rails. Теперь все отлично работает.   -  person C404    schedule 25.09.2014


Ответы (2)


Я знаю, что исходная проблема, вероятно, была решена. Тем не менее, у меня была такая же проблема, и я наконец нашел ответ.

Поскольку rails-api - это урезанная версия rails, некоторые функции отсутствуют (в данном случае неявное преобразование представлений), и нам нужно добавить их явно.

Самое простое решение - добавить ActionController :: ImplicitRender в ApplicationController.

# app/controllers/application_controller.rb
class ApplicationController < ActionController::API
  include ActionController::ImplicitRender
end
person Vees    schedule 10.11.2014
comment
В Rails 5 вам, вероятно, также потребуется добавить include ActionView::Layouts - person Ryan Crispin Heneise; 17.03.2016
comment
Также не забудьте раскомментировать гем jbuilder в Gemfile! Потратил несколько часов на поиски этого. :( - person Swaathi Kakarla; 06.06.2018

Похоже, вы неправильно назвали представление jbuilder.
Оно должно быть app/views/users/show.json.jbuilder вместо app/views/users/show.json.builder.

person jottr    schedule 28.09.2014