Почему при вставке <div> <% = render 'my_partial'%> </ div> w / Coffeescript выдается ошибка, когда частичное содержит вспомогательные методы rails (например, link_to)?

0

Я заметил, что если я вставляю <div> с Coffeescript следующим образом:

$('#container-1').slideUp 'slow', ->
    $('#container-2').html("<div class='row'><div class='small-12 columns'><%= render 'my_partial' %></div></div>")
    $('#container-2').slideDown()

И частичный содержит вспомогательный метод rails, такой как link_to или collection_select, Coffeescript выдает синтаксическую ошибку. Если я удалю link_to и заменим его обычным <a href=... который делает то же самое, я не получаю ошибку.

Любая идея, что вызывает это? Как я могу обойти это, чтобы включить вспомогательные методы в частичное?

Благодарю!

  • 2
    Посмотрите на сгенерированный код Coffeescript. Скорее всего, частичное содержит " и, таким образом, преждевременно закрывает строку. Чтобы решить эту проблему, можно не отображать частичное внутри строки JavaScript.
  • 0
    какую ошибку выдает ??
Показать ещё 3 комментария
Теги:
coffeescript

1 ответ

2
Лучший ответ

Как предполагает Феликс выше, вы, вероятно, генерируете некорректный код CoffeeScript из-за того, что в вашу строку CoffeeScript вставлены неэкономленные кавычки.

Попробуйте использовать вспомогательный метод escape_javascript или его удобный псевдоним j:

$('#container-1').slideUp 'slow', ->
  $('#container-2').html("<div class='row'><div class='small-12 columns'><%= j render 'my_partial' %></div></div>")
  $('#container-2').slideDown()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню