Учитывая путь Rails в виде строки, добавьте несколько параметров - PullRequest
2 голосов
/ 14 марта 2012

Учитывая строку, содержащую произвольный путь:

s = "/api/doctors/123/patients?page=4&active=true"

Какой лучший способ добавить еще один параметр в этот путь?Я ищу что-то подобное:

merge_parameters s, :foo => 'bar'
# => "/api/doctors/123/patients?page=4&active=true&foo=bar"

merge_parameters s, :page => 5
# => "/api/doctors/123/patients?page=5&active=true"

Существует ли это?


Я хочу добавить ссылку next вмой API для разбивки на страницы, чтобы клиенты знали, как получить следующую страницу результатов:

{
  "results": [ {...}, {...}, ... ]
  "next": "/api/doctors/123/patients?page=5"
}

Я надеюсь, что смогу использовать request.path и этот метод для получения следующей страницы результатов.*

1 Ответ

0 голосов
/ 13 сентября 2012

Для этого вы можете использовать класс URI .

>rails c
Loading development environment (Rails 3.2.6)
1.9.3p194 :001 > a = URI.parse("/api/doctors/123/patients?page=4&active=true")
 => #<URI::Generic:0x007fa27c33f6f0 URL:/api/doctors/123/patients?page=4&active=true> 
1.9.3p194 :002 > a.path
 => "/api/doctors/123/patients" 
1.9.3p194 :003 > a.query
 => "page=4&active=true" 

Разделить параметры в хэш, объединить его с новыми значениями, хэш-строку, переназначить и затем URI-строку или вариации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...