Я пытаюсь настроить простой ответ JSON с помощью Jbuilder. Мой контроллер выглядит следующим образом:
class Api::V1::JobsController < Api::V1::BaseController
def show
@job = Job.find(params[:id])
end
end
У меня есть шаблон jbuilder здесь:
views\api\v1\jobs\show.json.jbuilder
Почему-то при загрузке страницы в браузере или Postman контроллер попадает, но шаблон jbuilder не найден. я получаю:
Rendered text template (0.5ms)
Completed 404 Not Found in 298ms
Если я изменю действие show на контроллере заданий и добавлю render json: @job
, я получу желаемый результат, но, конечно, он не использует шаблон jbuilder.
Не могу понять, почему он не видит шаблон jbuilder!
добавлены некоторые дополнительные детали, если я перейду к URL-адресу .json
Started GET "/api/v1/jobs/69407.json" for 127.0.0.1 at 2016-01-21 19:16:44 -0500
Processing by Api::V1::JobsController#show as JSON
Parameters: {"id"=>"69407"}
Job Load (18.3ms) SELECT "jobs".* FROM "jobs" WHERE "jobs"."id" = $1 LIMIT 1 [["id", 69407]]
Rendered text template (0.5ms)
Completed 404 Not Found in 86ms (Views: 1.1ms | ActiveRecord: 56.4ms)
update - я обнаружил, что если я специально ссылаюсь на шаблон jbuilder, он загружается:
render 'show', formats: [:json], handlers: [:jbuilder], status: 200
Кроме того, чтобы даже заставить вышеперечисленное работать, мне пришлось добавить драгоценный камень jbuilder в мой файл драгоценного камня - что странно, поскольку я использую Rails 4, который должен включать его по умолчанию?
Completed 404 Not Found
не означает, что представление не найдено! Если Rails не сможет найти представление, он выдаст ошибку и вернет 500. 404 означает, чтоJob.find(params[:id])
не находит запись. Проверьте журнал рельсов. - person max   schedule 21.01.2016render json: @job
, я получу желаемый вывод JSON. - person cman77   schedule 21.01.2016\api\v1\jobs\1.json
, а затем добавить вывод из журнала рельсов в вопрос? Дать квалифицированный ответ намного проще. - person max   schedule 21.01.2016format: 'json'
? Проверьте также шаблон JBuilder никогда не вызывается - person Artem   schedule 24.01.2016