У меня такое чувство, что это имеет какое-то отношение к коду с «или», который вызывает проблему, я предлагаю использовать Firebug (плагин Firefox) для отладки кода, поскольку IMO лучше подходит для отладки HTML и JS, чем консоли Chrome
Вообще-то это не то, что хорошо иметь ERB код внутри шаблонам JS, я предлагаю решение, что, делая это следующим образом:.
не используйте Underscore интерполяции по умолчанию, так как Легко смешивать его с кодом ERB, который вам также нужен, но по-разному. Я использую:
Backbone.$ = $; // I have no idea why backbone complains about that stuff, but this thing solves the problem.
_.templateSettings = {
interpolate: /\$\{\{(.+?)\}\}/g,
escape: /\%\{\{(.+?)\}\}/g,
evaluate: /\{\{(.+?)\}\}/g
}; // set template interpolation settings
вы можете установить эти параметры так, как вы хотите
Сделать нормальный HTML частичным и иметь содержимое внутри него завернутым в коде шаблона, например:
<script id="something_template" type="text/template">
<li><%= form_for :movie, url: movie_path do |f| %><% end %></li>
</script>
примечания: Не перепутать рубиновый код < % =%> и магистральная JS код% {{}}
визуализации это частичное с JavaScript, я полагаю, в методе визуализации класса магистрального вида
render: function() {
$("#container").empty();
$(_.template($("#something_template").html(), {
// variables go here
})).appendTo("#container");
}
Надеюсь, этот совет поможет вам решить вашу проблему. Я могу только сказать, что это работает для моих проектов.
Какую версию рубина вы используете? – AmShaegar
Я использую ruby 2.1.2p95, и я использую систему шаблонов Backbone/underscore. –