为了论证,我们有“新产品”表格。
我为html表单元素使用了一些javascript库(例如icheck,select2,wysihtml5)。这些表单元素需要与其关联的js库函数一起运行,以便在呈现HTML页面之前正确显示(例如$(".checkbox").iCheck({...}
))。
如果在提交表单时存在验证错误,Rails将呈现操作“ new ”以重新显示“新产品”表单中的错误(完全在““ ProductsController ”中的“创建”方法。
问题是Rails在这种情况下不会再次执行相关的javascript文件(例如products.js.coffee)。然后,基于javascript的html表单元素无法正常显示(因为$(".checkbox").iCheck({...})
未执行)。
如何解决此问题?
答案 0 :(得分:1)
这可能是一个涡轮问题。查看jquery-turbolinks
gem,或尝试以下操作:
ready = ->
...your coffeescript goes here...
$(document).ready(ready)
$(document).on('page:load', ready)
您也可以尝试禁用turbolinks以查看它是否是问题。