可以在网址中不使用.json的情况下使用rabl吗?

时间:2019-03-21 14:04:43

标签: ruby-on-rails url routes rabl

我已经开始跑步了。

我在路线上有这个

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')

那有可能吗?

1 个答案:

答案 0 :(得分: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