在rails 3.1中将rjs转换为js.erb

时间:2011-10-25 19:15:24

标签: javascript ruby-on-rails ajax ruby-on-rails-3 rjs

如何将rjs文件转换为js.erb

只是重命名在我的情况下不起作用

这是我的旧代码(适用于rails 2 app)

page.replace_html(
 "overlay" , 
  :partial => @path_resolver.resolve_template(
                :tmpl_name => 'cmn/popup/shared/show_popup',
                :partial => true
            ),
:object => @content_data

我将代码更改为

  page.replace_html(
"overlay" , 
("<%= escape_javascript(render(
:partial => @path_resolver.resolve_template(
                :tmpl_name => 'cmn/popup/shared/show_popup',
                :partial => true
            ))) %>"),

 :locals => {:object => @content_data }

现在我在firebug中遇到语法错误,如

 SyntaxError: syntax error

 :locals => {:object => @content_data }

如果我将目标代码传递为:object =&gt; @content_data (不使用本地人)

我得到了另一个错误

 syntax error
 :object => @content_data 

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。

我们需要使用Element.update代替page.replace_html

新代码如下:

Element.update (
  "overlay" ,
  "<%= escape_javascript(render(
            :partial => @path_resolver.resolve_template(
            :tmpl_name => '../shared/show_popup',
            :partial => true,

             :object => @content_data 
           ))) %>"
)