Я использую OmniAuth, чтобы позволить пользователям входить в систему со своими учетными записями Google OpenID.Когда я пытаюсь войти в режим разработки с помощью WEBrick, я получаю ошибку WEBrick :: HTTPStatus :: RequestURITooLarge.Когда я размещаю его на моем хосте rails, он работает нормально.Есть ли другой веб-сервер, который я должен использовать вместо WEBrick?
Странно, мне интересно, какое ограничение длины URI для WEBrick.Вы можете попробовать thin http://code.macournoyer.com/thin/. Я использую это локально для разработки иногда, и это, кажется, прекрасно работает.
thin
Как упоминалось в Railscast 236 для OmniAuth, у WEBrick есть проблемы с длинными URL-адресами, предоставляемыми OpenID. Решение, которое сработало для меня, состояло в том, чтобы добавить Mongrel в ваш гемфайл.
gem 'mongrel', '1.2.0.pre2'
Добавить файл с именем webrick.rb file в каталог config\initializers.
webrick.rb
config\initializers
if defined?(WEBrick::HTTPRequest) WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240) end
Ограничение размера URL изменилось с 1024 до 2083 в последнем источнике ruby.Я надеюсь, что скоро будет выпущена обновленная версия ruby с этим исправлением :)
https://github.com/ruby/ruby/blob/trunk/lib/webrick/httprequest.rb#L291
Я столкнулся с той же проблемой с DataTables гемом Caseproof , используя Webbrick и таблицу, которая имела много столбцов (> 15).Переход на тонкий сервер также решил мою проблему. DataTables - это плагин javascript / jquery для создания таблиц.