Не могу понять маршрут API Grape

у меня много проблем с пониманием API Grape, в частности route_param и как это работает с just params.

рассмотрим этот код:

desc "Return a status."
params do
 requires :id, type: Integer, desc: "Status id."
end
route_param :id do
 get do
  Status.find(param[:id])
 end
end

какой маршрут производит этот блок? Я понимаю, что это get запрос, но почему он завернут в route_param блок? Почему это не может быть в params заблокировать?

1 ответов


ваш блок производит этот маршрут:

http://yourdomain.com/<resource>/<id>

обратите внимание, что ваш код и код ниже делают то же самое и производят тот же маршрут:

desc "Return a status."

params do
  requires :id, type: Integer, desc: "Status id."
end

get ':id' do
  Status.find(params[:id]) 
end

можно использовать route_param в группу методов, которые получают те же параметры, например:

resource :categories do
  route_param :id do
    get do # produces the route GET /categories/:id
    end

    put do # produces the route PUT /categories/:id
    end
  end
end