Недавно я столкнулся с тем же требованием (и проблемой). На Rails 3 и Ruby 1.9.2.
Это не проблема для нашей промежуточной / производственной среды (nginx), но мне было интересно узнать, в чем проблема с WEBrick. Оказывается, проблема заключается в методе URI :: Parser.split, а именно в том, как его сопоставление с образцом засевается с помощью констант URI :: REGEXP :: PATTERN.
Вы можете «исправить» это, добавив следующее в config / environment / development.rb (при условии, что вы будете использовать WEBrick только в dev .. или вы можете поместить его в файл config / initializers) ..
# this allows WEBrick to handle pipe symbols in query parameters
URI::DEFAULT_PARSER =
URI::Parser.new(:UNRESERVED => URI::REGEXP::PATTERN::UNRESERVED + '|')
Примечание: это настройка: UNRESERVED => "-_.! ~ * '() A-zA-Z \ d |"