diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 90d69207e6fa3c0540a2bdd77e237ba6bf111b88..aca576feb71f050a2be459edf8774fd23aad19c0 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Fixed escaping of :method option in remote_form_tag #1218 [Rick Olson] + * Added Serbia and Montenegro to the country_select #1239 [todd@robotcoop.com] * Fixed Request#remote_ip in testing #1251 [bitsweat] diff --git a/actionpack/lib/action_view/helpers/javascript_helper.rb b/actionpack/lib/action_view/helpers/javascript_helper.rb index c897c5e8b825cec9201357ac8adc1d3a202cc22c..11f513c01c4f64e78e217c6ef0ae15bf9c264500 100644 --- a/actionpack/lib/action_view/helpers/javascript_helper.rb +++ b/actionpack/lib/action_view/helpers/javascript_helper.rb @@ -193,7 +193,7 @@ def options_for_ajax(options) js_options = build_callbacks(options) js_options['asynchronous'] = options[:type] != :synchronous - js_options['method'] = options[:method] if options[:method] + js_options['method'] = method_option_to_s(options[:method]) if options[:method] js_options['insertion'] = "Insertion.#{options[:position].to_s.camelize}" if options[:position] if options[:form] @@ -205,6 +205,10 @@ def options_for_ajax(options) '{' + js_options.map {|k, v| "#{k}:#{v}"}.join(', ') + '}' end + def method_option_to_s(method) + (method.is_a?(String) and !method.index("'").nil?) ? method : "'#{method}'" + end + def build_observer(klass, name, options = {}) options[:with] ||= 'value' if options[:update] callback = remote_function(options)