生产中的JS错误,但不是开发轨道

时间:2013-03-04 19:48:22

标签: javascript ruby-on-rails coffeescript ckeditor

我在制作JS时遇到了一些问题。这是我的CoffeeScript:

$("form.edit_email_template").submit ->
    window.onbeforeunload = -> null
    $.each $("form.edit_email_template"), (i, v) ->
      if CKEDITOR.instances[$("form.edit_email_template[action='" + $(v).attr("action") + "'] .email_content_area").attr("id")]
        try
          $.ajax($(v).attr("action"),
            type: "POST"
            data:
              _method: "PUT"
              authenticity_token: $("form.edit_email_template[action='" + $(v).attr("action") + "'] input[name='authenticity_token']").val()
              email_template:
                sendLength: $("form.edit_email_template[action='" + $(v).attr("action") + "'] #email_template_sendLength").val()
                subject: $("form.edit_email_template[action='" + $(v).attr("action") + "'] #email_template_subject").val()
                content: CKEDITOR.instances[$("form.edit_email_template[action='" + $(v).attr("action") + "'] .email_content_area").attr("id")].getData()
          )
        catch error
          console.log(error)

在开发方面,它完美无缺。在制作时,我收到了这个错误:

Uncaught TypeError: Cannot call method 'getData' of undefined 

我应该如何修复它?

CKEDITOR.instances => Object {et28: e, et31: e, et32: e, et36: e, et7: e…}
et: e
et7: e
et8: e
et24: e
et28: e
et31: e
et32: e
et36: e

存在所有DOM元素。 如果我将CoffeeScript生成的JS粘贴到JS控制台中,它就能正常工作

1 个答案:

答案 0 :(得分:0)

确保在production.rb文件中包含此内容:

config.assets.precompile << '*.js'
config.assets.precompile << '*.css'

我猜CKEditor或你的一些js还没有预先编译过。