在haml中取消内联链接

时间:2010-09-25 23:11:48

标签: ruby-on-rails haml

所以我想在电子邮件表单中找到标题旁边的删除链接。但是,我的铁路伏都教显然非常弱。它逃脱了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 个答案:

答案 0 :(得分:4)

这不是很难修复。 Rails默认会逃避一切。为了防止你可以在任何字符串上使用方法html_safe。这可以解决您的问题。

= f.input:email,:label => “电子邮件”+ link_to_remove_fields(“[x]”,f).html_safe

= f.input:email,:label => “电子邮件#{link_to_remove_fields(”[x]“,f).html_safe}”

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

= f.input:email,:label => “电子邮件#{link_to_remove_fields(”[x]“,f)}”。html_safe

希望这会帮助你。 =)

答案 1 :(得分:1)

我遇到了同样的问题,我通过在帮助程序中使用以下内容修复了它:

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

有一点需要注意,当我在Rails 3.1应用程序中尝试此操作时,我必须重新启动服务器,然后才能获取帮助程序中的更改。这可能适用于早期版本,也可能不适用,但值得牢记。

答案 2 :(得分:0)

试试这个:

require 'cgi'

unescaped = CGI.unescapeHTML(string)