如果不在网址中使用.json,我可以使用rabl吗?

问题描述 投票:0回答:1

我已经开始跑步了。

我在路线中有这个:

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

在控制器中:

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

此网址指向正确的结果:

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

我希望这个网址始终使用rabl并显示模板dts/biblios/biblio_rabl.json.rabl

我的意思是不在网址的末尾添加.json。

我在routes.rb中尝试了这个,但它没有重定向:

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

这有可能吗?

ruby-on-rails url routes rabl
1个回答
1
投票

您可以通过更改控制器中的请求格式来强制响应为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
© www.soinside.com 2019 - 2024. All rights reserved.