2013-11-18 2 views
2

У меня есть проблема с моей удаленной формой в рельсах 4 с использованием простой формы. Он отлично работает, когда я использую его без AJAX, но как только я устанавливаю дистанцию ​​до истинных рельсов, бросает ActionDispatch::ParamsParser::ParseError, говоря unexpected token at 'utf8=%E2%9C%93&...'.Rails 4 удаленная форма выдает неправильный запрос (ParamsParse :: ParseError)

Я не имею ни малейшего понятия, что может быть причиной этого, но это, вероятно, что-то действительно глупо, так как я, кажется, единственный, кто это :)

Это форма тега Я использую:

<%= simple_form_for @profile, remote: true, defaults: { wrapper_html: {:class => 'form-group'}, input_html: { :class => 'form-control' } } do |f| %> 

И это след рельсы возвращается ко мне:

actionpack (4.0.0) lib/action_dispatch/middleware/params_parser.rb:53:in `rescue in parse_formatted_parameters' 
actionpack (4.0.0) lib/action_dispatch/middleware/params_parser.rb:32:in `parse_formatted_parameters' 
actionpack (4.0.0) lib/action_dispatch/middleware/params_parser.rb:23:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/flash.rb:241:in `call' 
rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context' 
rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/cookies.rb:486:in `call' 
activerecord (4.0.0) lib/active_record/query_cache.rb:36:in `call' 
activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:626:in `call' 
activerecord (4.0.0) lib/active_record/migration.rb:369:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call' 
activesupport (4.0.0) lib/active_support/callbacks.rb:373:in `_run__732810880914274126__call__callbacks' 
activesupport (4.0.0) lib/active_support/callbacks.rb:80:in `run_callbacks' 
actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/reloader.rb:64:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/remote_ip.rb:76:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' 
railties (4.0.0) lib/rails/rack/logger.rb:38:in `call_app' 
railties (4.0.0) lib/rails/rack/logger.rb:21:in `block in call' 
activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `block in tagged' 
activesupport (4.0.0) lib/active_support/tagged_logging.rb:25:in `tagged' 
activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `tagged' 
railties (4.0.0) lib/rails/rack/logger.rb:21:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/request_id.rb:21:in `call' 
rack (1.5.2) lib/rack/methodoverride.rb:21:in `call' 
rack (1.5.2) lib/rack/runtime.rb:17:in `call' 
activesupport (4.0.0) lib/active_support/cache/strategy/local_cache.rb:83:in `call' 
rack (1.5.2) lib/rack/lock.rb:17:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/static.rb:64:in `call' 
railties (4.0.0) lib/rails/engine.rb:511:in `call' 
railties (4.0.0) lib/rails/application.rb:97:in `call' 
rack (1.5.2) lib/rack/lock.rb:17:in `call' 
rack (1.5.2) lib/rack/content_length.rb:14:in `call' 
rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service' 
webrick (1.3.1) lib/webrick/httpserver.rb:138:in `service' 
webrick (1.3.1) lib/webrick/httpserver.rb:94:in `run' 
webrick (1.3.1) lib/webrick/server.rb:191:in `block in start_thread' 

большое спасибо за вашу помощь!

ответ

6

Это может быть и не так много, но для всех, кто случайно сталкивается с той же проблемой, что и я, я наконец нашел решение: где-то глубоко в моей кодовой базе кто-то задал глобальные настройки для jQuery Ajax-запросов, установив тип контента в JSON , Поскольку Rails использует jQuery-помощники Ajax, но не использует JSON (но обычные строки запроса), поскольку это удаленные формы, парсер Rails, конечно, обнаружил искаженный JSON и выбросил ошибку. Удаление этих глобальных настроек решило проблему.

2

TL, DR просто удалить contentType: "application/json",

+0

Wow, что короток, но дул мне в голову. – Trip

Смежные вопросы