Вложенная функция link_to_function / insert_html не работает - PullRequest
0 голосов
/ 16 ноября 2009

Вот простой пример проблемы.

http://gist.github.com/235729

Короче говоря, если у вас есть index.rhtml с:

<%= link_to_function "A link to insert a partial with nested insert_html" do |page|
      page.insert_html :top, :with_a_nested_insert_html, :partial => 'example_partial_with_nested_insert_html'
    end %>

И _example_partial_with_nested_insert_html.rhtml

<%= link_to_function "A nested link to insert_html" do |page|
      page.insert_html :top, :with_a_nested_insert_html, :partial => 'you_wont_see_this'
    end %>

Он разрывает ссылку на вставку части с вложенным insert_html. Я думаю, что нужно что-то сделать, чтобы защитить javascript в частичном.

Есть мысли?

Ответы [ 3 ]

1 голос
/ 29 января 2010

Вот как я это делаю.

<%= link_to_function( "insert it", :id => 'foo') do |page| 
            partial = escape_javascript(render :partial => "my_partial", :object => Object.new)
            page <<  "$('#my_div').append(\"#{partial}\")"
        end %>
0 голосов
/ 16 ноября 2009

Попробуйте использовать escape_javascript перед рендерингом партиалов - см. Этот другой вопрос .

0 голосов
/ 16 ноября 2009

Я не пробовал, но я твердо думаю, что синтаксис должен выглядеть примерно так:

<% link_to_function "A link to insert a partial with nested insert_html" do |page|
   <%= page.insert_html :top, :with_a_nested_insert_html, :partial => 'example_partial_with_nested_insert_html' %>
<% end %>
...