я могу использовать Rabl без использования .json в URL? - PullRequest
0 голосов
/ 21 марта 2019

Рабл работает и работает.

У меня есть это в маршрутах:

get 'biblios/collection/:biblio_urn' => 'biblios#biblio_rabl', as: 'collection_biblio'

в контроллере:

def biblio_rabl
    biblio = Biblio.where(biblio_urn: params[:biblio_urn]).take     
end

Этот URL указывает на правильный результат:

http://localhost:3000/dts/biblios/collection/urn:cts:froLit:ed_desmarez:1900

Я бы хотел, чтобы этот URL всегда отвечал с использованием rabl и показывал шаблон dts/biblios/biblio_rabl.json.rabl

Я имею в виду без добавления .json в конце URL.

Я пробовал это в routes.rb, но он не перенаправляет:

get 'biblios/collection/:biblio_urn' => 'biblios#biblio_rabl', as: 'collection_biblio', to: redirect('biblios/collection/%{biblio_urn}.json')

Возможно ли это вообще?

1 Ответ

1 голос
/ 21 марта 2019

Вы можете заставить ответ быть json, изменив формат запроса в контроллере:

request.format = :json

Затем убедитесь, что у вас есть respond_to блок, подобный этому, потому что всегда лучше четко указывать свои ответы:

def biblio_rabl
  respond_to do |format|
    format.json { json: Biblio.where(biblio_urn: params[:biblio_urn]).take }
  end
end
...