Я заметил, что если я вставляю <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=...
который делает то же самое, я не получаю ошибку.
Любая идея, что вызывает это? Как я могу обойти это, чтобы включить вспомогательные методы в частичное?
Благодарю!
Как предполагает Феликс выше, вы, вероятно, генерируете некорректный код 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()
"
и, таким образом, преждевременно закрывает строку. Чтобы решить эту проблему, можно не отображать частичное внутри строки JavaScript.