アンダースコア テンプレートを使用して、ブートストラップ ドロップダウン メニューを作成するためのテンプレートを作成しています。コードは自分のコンピューターでは問題なく動作しましたが、今は ruby on rails バックエンド サーバーに追加しています。これで、コードは機能しなくなりました。<% %> の間のコードは、JavaScript ではなく Ruby コードとして解釈されると言われました。ruby のことはまったく知らないのですが、誰かが for ループの書き方を教えてくれました。
<!-- Dropdown Menu-->
<script type="text/template" id="dropdown">
<div class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown">
<span> <%= name %> </span>
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<% array_of_items.each do |obj| %>
<li> <a> <%= obj %> </a> </li>
<% end %>
</ul>
</div>
</script>
私が得るエラーは「未定義の変数array_of_items」です。もちろん、定義されていません。後で定義します
this.$el.append(this.makeDropdown({
name: this.name,
array_of_items: [1,2,3,4]
}));
アンダースコア テンプレートは Javascript ではこのように機能しますが、Ruby では何らかの理由で未定義の変数をテンプレートに含めることができません。