Преобразование rjs в js.erb в rails 3.1

#javascript #ruby-on-rails #ajax #ruby-on-rails-3 #rjs

#javascript #ruby-on-rails #ajax #ruby-on-rails-3 #rjs

Вопрос:

Как преобразовать файл rjs в js.erb

В моем случае простое переименование не работает

Это мой старый код (хорошо работает с приложением rails 2)

 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 => @content_data (без использования локальных файлов)

я получаю еще одну ошибку

  syntax error
 :object => @content_data 
  

Ответ №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 
           ))) %>"
)