Я новичок в Ruby, пытаюсь создать API.
Я следовал учебному пособию и смог вернуть ответ JSON при вызове конечной точки API.
В этом примере вызываемая функция вызывает ошибку, которую я хочу передать как JSON ответ.
my_controller.rb
class MyController < ApplicationController
def getTracklist
begin
importer = #this raises an error
rescue StandardError => e
@response = {
error: e.message,
}
return @response
end
end
end
мой взгляд выглядит следующим образом:
getTracklist. json .jbuilder
json.response @response
Дело в том,
это работает, но отображает мой ответ как
{"response":{"error":"the error message"}}
, пока я хочу его как
{"error":"the error message"}
Я предпринял попытку изменить свое представление на
json @response
, но это не удалось:
ActionView :: Template :: Error (неопределенный метод `json 'для <#: 0x0000559304675470> Вы имели в виду? JSON): 1: json @ response
Итак, как я могу сделать мой ответ" полностью "без нужно ли указывать его в свойстве?
Я также видел, читая материал о ROR, что этот код иногда используется, и мне было интересно, как я мог бы использовать его в этой ситуации:
render json: { error_code:'not_found', error: e.message }, status: :not_found
Спасибо!