2017-02-17 9 views
0

У меня есть JBuilder файл:Как проверить или шаблон вид установки расширения

app/views/api/items/show.json.jbuilder 

код

render :show 
#or 
render :show, template: "api/items/show" 

не работал - template is missing, но код

render :show, template: "api/items/show.json" 

работал отлично.

Что не так? Что нужно проверить? Какой файл посмотреть или что свалить?

ответ

1

Вам нужно будет использовать метод respond_to, чтобы указать Rails, на который вы отвечаете на запрос json.

def show 
    respond_to do |format| 
    format.json 
    end 
end 
+0

Есть ли способ настроить его по умолчанию по умолчанию по крайней мере для каждого класса контроллера? Я пишу только приложение api, и ожидаемого ответа не ожидается. –

+0

Вы не используете версию Rails Rails? – Iceman

+0

Я решил проблему с вашим полезным ответом. Но причина была другая. –

1

Другим способом является передача HTTP заголовок:

headers: { 
    "Accept": "application/json" 
} 

не требуется указывать формат в методе контроллера с этим. И код:

render :show 

работа хорошо сейчас.

Я прокомментировал некоторый код, который ограничивает HTTP-заголовки для запроса. Ответ @Iceman перенаправил меня в правильном направлении, чтобы проверить, чтобы его ответ обозначался как answer.