Я пытаюсь настроить простой ответ JSON с помощью Jbuilder. Мой контроллер выглядит следующим образом:Rails4 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
По какой-то причине при загрузке страницы в браузере или Почтальон контроллер удар, но шаблон JBuilder не найден. Я получаю:
Rendered text template (0.5ms) Completed 404 Not Found in 298ms
Если я изменить шоу действий на контроллере рабочих мест и добавить render json: @job
я получаю желаемый результат, но, конечно, он не использует шаблон JBuilder.
Не могу понять, почему он не видит шаблон jbuilder!
добавлены некоторые дополнительные подробности, если я иду в .json URL
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)
обновление - я обнаружил, что если я конкретно ссылку на шаблон JBuilder он загружает:
render 'show', formats: [:json], handlers: [:jbuilder], status: 200
Также - чтобы даже заставить выше работать, мне пришлось добавить jbuilder gem в мой файл gem - что странно, поскольку я на Rails 4, который должен включать его по умолчанию?
'Completed 404 Not Found' не означает, что вид не найден! Если Rails не может найти представление, оно вызовет ошибку и вернет 500. 404 означает, что 'Job.find (params [: id])' не находит запись. Проверьте журнал рельсов. – max
Но он находит работу, как я уже сказал, добавляю ли прямой вывод JSON к контроллеру 'render json: @ job', я получаю желаемый JSON out put. – cman77
Можете ли вы проверить доступ к '\ api \ v1 \ jobs \ 1.json', а затем добавить вывод из журнала rails в вопрос? Это дает намного легче дать квалифицированный ответ. – max