- });
- $.each(action_data, function(key, value) {
- data.push({name: key, value: value});
- });
+ });
+ }
+ $.each($.extend({}, action_data, action_data_from_params),
+ function(key, value) {
+ if (value instanceof Array && key[-1] != ']') {
+ for (var i in value) {
+ data.push({name: key + '[]', value: value[i]});
+ }
+ } else {
+ data.push({name: key, value: value});
+ }
+ });
+ if (http_method === 'PATCH') {
+ // Some user agents do not support HTTP PATCH (notably,
+ // phantomjs silently ignores our "data" and sends an empty
+ // request body) so we use POST instead, and supply a
+ // _method=PATCH param to tell Rails what we really want.
+ data.push({name: '_method', value: http_method});
+ http_method = 'POST';
+ }