#ruby-on-rails #jbuilder
#ruby-on-rails #jbuilder
Вопрос:
Выполнение http://localhost:3000/options/audio
И я получаю сообщение об ошибке:
Missing template options/audio, application/audio with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]}. Searched in: * "/Users/mmahalwy/Desktop/Code/quran.com/QuranAPI/app/views"
Когда я делаю http://localhost:3000/options/audio.json
Это отображает мой файл Jbuilder и желаемый json. Как я могу отобразить свой шаблон jbuilder с помощью .расширение json?
Ответ №1:
В документации jbuilder указано, что вы должны создать свой шаблон jbuilder в виде *.json.jbuilder
файла. Это заставляет маршрут искать .расширение json. Если вы удалите .разделите json и создайте свой файл *.jbuilder
, чтобы вы могли перейти к маршруту без .расширение json.
Пример:
Filename: index.jbuilder
route: get 'ticket', to: 'tickets#index'
Ответ №2:
jbuilder
это драгоценный камень, инструмент…. Я не пробовал, но если вам нужна функциональность по умолчанию (html) с json
помощью and jbuilder
, то:
http://localhost:3000/options/audio
будет искать
/Users/mmahalwy/Desktop/Code/quran.com/QuranAPI/app/views/.../audio.html.jbuilder
Итак, вы можете поместить туда свой код… Но это может быть только код jbuilder… В противном случае вы можете использовать обычный html.erb
или другой файл со встроенным ruby и указать в нем создание jbuilder json:
Jbuilder.encode do |json| # this is implied in .jbuilder files but can be used in any other ruby file
json.xxx @yyy.xxx
#....
end
Комментарии:
1. На самом деле я закончил тем, что ответил на свой собственный вопрос. Вместо
name.json.jbuilder
этого мне нужно просто сделатьname.jbuilder
, и ниrespond_to
один блок не будет использоваться по умолчанию для шаблона jbuilder.2.
name.jbuilder
иname.html.jbuilder
будет делать то же самое.respond_to
форматировать ТОЛЬКО html не обязательно для записи.