Я отправляю весь путь поиска в качестве параметра запроса.
...path/?url=https://www.example.com/en/search?s%5Bparam1%5D=value1&s%5Bparam2%5D=value2&s%5Bparam3%5D=value3
Контроллер Rails интерпретирует это как
params[:url] возвращает "https://www.example.com/en/search?s[param1]=value1"
params[:url]
"https://www.example.com/en/search?s[param1]=value1"
и
pararms[:s] возвращает "{"s"=>{"param2"=>"value2", "param3"=>"value3"}
pararms[:s]
"{"s"=>{"param2"=>"value2", "param3"=>"value3"}
Можно ли каким-либо образом получить доступ ко всей строке запроса в params[:url]?
Outcome => params[:url] вернется "https://www.example.com/en/search?s[param1]=value1&s[param2]=value2&s[param3]=value3"
"https://www.example.com/en/search?s[param1]=value1&s[param2]=value2&s[param3]=value3"
Казалось, что URL был отформатирован неправильно, так как вы не можете иметь example.com?url=otherexample.com?a=b&b=c.
example.com?url=otherexample.com?a=b&b=c
Параметр url должен быть закодирован перед отправкой в запросе.
url
Вы можете отправить параметры как этот
http://www.example.com/en/search?x[]=1&x[]=2&x[]=3
и получите параметр в виде массива в бэкэнде
arr = params[:x] /// [1,2,3]