Broken escape_javascript after SafeBuffer modifications in rails 3.0.8 #1553

morgoth opened this Issue Jun 8, 2011 · 10 comments


None yet

7 participants

morgoth commented Jun 8, 2011

After this commit: 53a2c0b
(in rails 3-0-stable branch and present in rails 3.0.8)
javascript_escape connected with rendering template is not working correctly.

<%= escape_javascript(render("partial")) %>

Partial content:

<span> Topics </span>

rails 3.0.8:

"<span> Topics span>"

rails 3.0.7:

"<span> Topics <\\/span>\\n"

You can play with this bug using sample app:

morgoth commented Jun 8, 2011

related to #1555


escape_javascript needs to be fixed to not use $1.

sekrett commented Jun 8, 2011

Same problem here

tardate commented Jun 8, 2011

@josevalim that's what we're doing as a monkey-patch to get by for now, however it means gsub's behaviour remains changed from ruby core doc.. not too comfortable with that. I'm trying to find a good fix to suggest on 1555.


@tardate I don't think we can leave gsub intact. If it cannot work as in core, we will probably remove it straight away. that's why I suggest to change escape_javascript to fix the issue differently. :)

starpeak commented Jun 8, 2011

As a quick workaround you can write an initializer monkey-patching escape_javascript:

module ActionView::Helpers::JavaScriptHelper
  def escape_javascript_with_workaround(javascript)

  alias_method_chain :escape_javascript, :workaround
madwire commented Jun 8, 2011

same issue on 3.1.0.rc2


Fixed on #1558.

@josevalim josevalim closed this Jun 8, 2011
diogui commented Jun 25, 2011

Hi. I'm just starting wiht rails 3.0.8. and I came across with the same problem ... Starpeak where should I put that monkey-patching escape_javascript ? Thanks for your help and Keep on the good work guys ! Amazing chages from Rails 1 to now . Rails is getting better and better :)

diogui commented Jun 25, 2011

I've update to the 3.0.9 version :) Wroking perfect :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment