#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
))) %>"
)