私は自分のウェブサイトのための大きなフラットなHTMLメニューを生成するRubyスクリプトを書いています。ページが読み込まれるたびにこのメニューを生成することができますが、これはリソースの浪費です決して変更する必要はありません。Ruby:動的値でHTMLを生成するには?
私は効果的に(半sudocodeに)次の手順を実行します:その後、
part_of_my_menu = eval %{
<script type="text/javascript">
var mapper = new Array();
<% parent_categories.each_with_index do |parent_category,i| -%>
mapper["#{parent_category.name}"] = <%= i -%>;
<% end -%>
</script>
}
とHTMLファイル(私が行うことができますこの)にpart_of_my_menu文字列変数を書くことができます。
これはevalがRubyでどのように動作するのかわかりませんが、誰もこの同じ「ラッパー」機能を実現する方法を知っていますか?
-
感謝を(FYI私は私の「evalの」機能をラップするコードは、これよりもはるかに長いですが、私は私が達成しようとしているものを説明するために、非常に小さなスニペットを掲載しました)!
tmpl = %q{<script type="text/javascript">...</script>}
erb = ERB.new(tmpl)
parent_categories = [ ... ]
part_of_my_menu = erb.result
ERBドキュメントは、それを使用する方法のいくつかの良い例が含まれています:あなたはこのようなものを行うことができるように