嵌套的link_to_function / insert_html不起作用

时间:2009-11-16 05:06:30

标签: ruby-on-rails prototype nested rjs partial-classes

这是一个简单的问题示例。

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 个答案:

答案 0 :(得分:1)

我是这样做的。

<%= 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 %>

答案 1 :(得分:0)

我没有尝试,但我强烈认为语法应该更像是:

<% 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 %>

答案 2 :(得分:0)

在渲染部分内容之前尝试使用escape_javascript - see this other question