2010-09-25 60 views
0

因此,我試圖在電子郵件表單中的標題旁邊獲取刪除鏈接。但是,我的鐵軌伏都顯然非常薄弱。它逃避了HTML,我無法弄清楚如何讓它不能。任何提示?在haml中轉換內聯鏈接

= 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 

回答

1

我有同樣的問題,因爲這個,我固定它用在我的幫助下:

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

有一點要注意,當我試圖這在一個Rails 3.1應用程序中,我必須重新啓動服務器,然後才能找到幫助器中的更改。對於早期版本,這可能會也可能不會,但值得記住。

4

這不是太難解決。默認情況下,Rails將會逃避一切。爲了防止你可以在任何字符串上使用html_safe方法。這將解決您的問題。

= f.input:電子郵件,:標籤=> 「電子郵件」 + link_to_remove_fields( 「[X]」,F).html_safe

= f.input:電子郵件,:標籤= >「Email#{link_to_remove_fields(」[x]「,f).html_safe}」

請記住不要將它放在整個標記字符串的末尾,否則它將不起作用。例如,這不起作用。

= f.input:電子郵件:標籤=> 「電子郵件#{link_to_remove_fields(」[X] 「F)}」 html_safe

希望這有助於你出去。 =)

+0

這對我不起作用......我認爲這是我的幫手方法。我把代碼放在我的問題中,我應該在哪裏放置html_safe? – 2010-09-26 00:00:05

+0

如果您在幫助程序中生成字符串,則還需要對這些字符串使用.html_safe,否則當它們到達您的視圖時,它們已經被轉義。你似乎打電話給其他助手,你可以發佈他們嗎? – quest 2010-09-26 00:13:38

+0

他們只是formtastic電話。如果我逃脫其中的任何一個,出於某種原因,我的代碼的其他部分會出現很多錯誤。 – 2010-09-26 02:39:21

0

試試這個:

require 'cgi' 

unescaped = CGI.unescapeHTML(string)