代码之家  ›  专栏  ›  技术社区  ›  Brian Hicks

在HAML中取消捕获内联链接

  •  0
  • Brian Hicks  · 技术社区  · 14 年前

    所以我想在邮件表单中的标题旁边找到一个删除链接。然而,我的铁轨巫毒很明显很弱。它逃过了HTML,我不知道如何让它逃过。有什么暗示吗?

    = f.input :email, :label => "Email " + link_to_remove_fields("[x]", f)
    

    [编辑]哦,是的,这是同样的事情:

    = f.input :email, :label => "Email #{link_to_remove_fields("[x]", f)}"
    

    这是我的助手方法…

    def link_to_add_fields(name, f, association)
        new_object = f.object.class.reflect_on_association(association).klass.new
        fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
          render(association.to_s.singularize + "_fields", :f => builder)
        end
        link_to_function(name, "add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")")
      end
    
    3 回复  |  直到 13 年前
        1
  •  1
  •   Kevin Ansfield    13 年前

    我有同样的问题,我通过在助手中使用以下方法解决了它:

    link_to_function(name, "add_fields(this, '#{association}', \'#{escape_javascript(fields)}\')")
    

    需要注意的一点是,当我在Rails3.1应用程序中尝试此操作时,我必须先重新启动服务器,然后才能接收助手中的更改。对于早期版本,这可能是正确的,也可能不是正确的,但值得记住。

        2
  •  4
  •   quest    14 年前

    这不难解决。默认情况下,Rails将避开所有内容。为了防止在任何字符串上使用HTML安全方法。这可以解决你的问题。

    =f.input:email,:label=>“email”+链接\删除\字段(“[x]”,f).html \安全

    =f.input:email,:label=>“email链接到_删除_字段(”[x]“,f).html安全”

    记住不要把它放在整个标记化字符串的末尾,否则它将不起作用。例如,这不起作用。

    =f.input:email,:label=>“email将_链接到_删除_字段(”[x]“,f)”。html _安全

    希望这能帮到你。=)

        3
  •  0
  •   dombesz    14 年前

    试试这个:

    require 'cgi'
    
    unescaped = CGI.unescapeHTML(string)