Ruby on rails Grape API:创建后返回位置标头

Ruby on rails Grape API:创建后返回位置标头,ruby-on-rails,grape-api,Ruby On Rails,Grape Api,POST请求应创建资源并返回指向所创建资源的“位置”标头 我在rails中使用GrapeAPI,并问自己返回创建的资源URI的最佳方法是什么。 grape是否提供了一种无需手动设置即可获取资源URI的方法 resource :blup do post '/' do blup = Blup.create(first_name: 'Jamie') if blup.present? header 'Location', 'HERE blup URI' end

POST请求应创建资源并返回指向所创建资源的“位置”标头

我在rails中使用GrapeAPI,并问自己返回创建的资源URI的最佳方法是什么。 grape是否提供了一种无需手动设置即可获取资源URI的方法

resource :blup do
  post '/' do
    blup = Blup.create(first_name: 'Jamie')
    if blup.present?
      header 'Location', 'HERE blup URI'
    end
  end
end

目前我还没有找到比这更好的:

header 'Location', "#{request.url}/#{blup.id}"

但仅当request.url是ressource根URI时才起作用。(例如在一个POST请求中)

虽然我不知道Grape给RubyonRails API添加了什么,但我也遇到了同样的问题,我找到了答案。 要在创建后在标题中提供位置,可以添加:

render location:specific\u thing\u i\u am\u寻找url(@thing)

你可以通过运行

rake routes

尝试Rails.application.routes.url\u helpers.blup\u url blup.id