【问题标题】:How to include ruby code in a Javascript String如何在 Javascript 字符串中包含 ruby​​ 代码
【发布时间】:2020-02-05 16:17:33
【问题描述】:

我正在制作一个功能,点击它会附加更多日期字段。尽管“表单”标签不断被文件输出并失败。

 $('.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”行是失败的。如何将其添加到字符串中?

【问题讨论】:

  • 尽量用""双引号,inner是单引号
  • 文件名叫什么?
  • @7urkm3n 我会试试的
  • @Mark 文件名是 _modal_form.html.erb ... 这很有意义,它是一个 ruby​​ 文件,但奇怪的是它以 js 字符串输出

标签: javascript jquery ruby-on-rails


【解决方案1】:

ERB (Embedded RuBy),即 &lt;%= %&gt; 括号中的内容,只有在服务器端运行时才会执行,因为 Ruby 是一种服务器端语言。相比之下,您在这里所做的只是在客户端,因此此时不涉及 Ruby。

因此,为了再次执行 Ruby 代码,您必须调用服务器。除非您希望页面重新加载,否则该调用必须是异步调用。幸运的是,这是一种非常标准的做法,Rails 让它变得非常简单!网上有很多很好的教程概述了如何做到这一点。 Here's one from Codeship,您可以通过谷歌搜索“Rails render partial with AJAX”之类的内容来找到其他人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 2013-09-12
    • 2013-06-15
    • 2010-10-16
    • 1970-01-01
    相关资源
    最近更新 更多