2011-07-04 1 views
5

私はこれは実際にはjavascriptのテンプレートとなる大きなHTMLブロックの一部であり、私は後でUnderscore.jsを使用して解析するこのRailsルート/ヘルパーから生のエスケープされていないhtmlを出力するにはどうすればよいですか?

%h2= link_to '{{ label }}', product_path('{{ id }}'.html_safe) 

私のページにリンクを生成するために、次のコードのビットを使用しようとしています{{ id }}{{ label }}のプレースホルダを入力します。だから私はそうしかし、それはスペースやbrackeetsを脱出保ち、そして私に

<a href="/products/%7B%7B%20id%20%7D%7D">{{ label }}</a> 

を与えるように私のHTMLに出力何かに

/製品/ {{ID}}

をレールを希望しますurl_helperは私が望んでいなくても、私の文字列をエスケープしています。私はそれをしないように強制することができますか?

私が試した

%h2= link_to '{{ label }}', product_path('{{ id }}'.html_safe) 
%h2= link_to '{{ label }}', product_path(raw '{{ id }}') 
%h2= link_to '{{ label }}', raw(product_path('{{ id }}')) 

%h2=raw(link_to '{{ label }}', product_path('{{ id }}'.html_safe)) 

しかし、それらのどれも動作しない

EDIT:

これで遊ぶための別の方法は、レールコンソール、

からです
include ActionController::UrlWriter 

ruby-1.9.2-p0 :010 > product_path '{{ id }}'.html_safe 
=> "/products/%7B%7B%20id%20%7D%7D" 

すべてのヘルプ感謝...感謝

おかげ

答えて

6

CGI::unescape(product_path('{{ id }}')は? (それに伴うrequire 'cgi'

私はこれがRuby 1.9.2だと思いますが、使用しているバージョンのようです。

+1

beau gosse !!素晴らしいです、ありがとう – noli