Как включить код ruby в строку Javascript - PullRequest
0 голосов
/ 05 февраля 2020

Я делаю функцию, которая при клике добавит больше полей даты. Хотя тэг 'form' продолжает выводиться файлом и дает сбой.

 $('.add-date-btn').click(function(e) {
        e.preventDefault()

        console.log('btn clicked')

        var appendStr = '<div class="form-group classes-field-one-time date-field">' +
                          '<label>If recurring once: <br />Add Date</label>' +
                          '<%= form.date_field :event_date, :class => 'form-control' %>' +
                          '</div>'


        $('#recurring-dates').append(appendStr)
    })

Строка "form.date_field" - это то, что не работает. Как я могу добавить это в строку?

1 Ответ

0 голосов
/ 05 февраля 2020

ERB (Embedded RuBy), что входит в скобки <%= %>, будет выполняться только при запуске на стороне сервера, поскольку Ruby - это язык на стороне сервера. В отличие от этого, то, что вы здесь делаете, находится только на стороне клиента, и поэтому Ruby на данном этапе не задействован.

Итак, чтобы снова выполнить код Ruby, у вас будет позвонить на сервер. И если вы не хотите, чтобы страница была перезагружена, этот вызов должен быть асинхронным. К счастью, это довольно стандартная практика, и Rails делает это довольно легко! Есть множество хороших учебных пособий онлайн, в которых рассказывается, как это сделать. Вот один из Codeship , вы можете найти других, просто погуглив что-то вроде "Rails рендерит частично с AJAX".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...