Rails:控制器呈现操作时如何运行javascript

Rails:控制器呈现操作时如何运行javascript,javascript,jquery,html,ruby-on-rails,forms,Javascript,Jquery,Html,Ruby On Rails,Forms,为了便于讨论,我们有“新产品”表格 我为html表单元素使用了一些javascript库(例如icheck、select2、wysihtml5)。在呈现HTML页面之前,这些表单元素需要与其相关联的js库函数一起运行才能正确显示(例如,$(“.checkbox”).iCheck({…}) 如果在提交表单时出现验证错误,Rails会将操作“新建””呈现给有错误的reshow“新产品””表单(正好在“产品控制器”中的“创建””方法中) 问题是Rails在这种情况下不会再次执行相关的javascrip

为了便于讨论,我们有“新产品”表格

我为html表单元素使用了一些javascript库(例如icheck、select2、wysihtml5)。在呈现HTML页面之前,这些表单元素需要与其相关联的js库函数一起运行才能正确显示(例如,
$(“.checkbox”).iCheck({…}

如果在提交表单时出现验证错误,Rails会将操作“新建””呈现给有错误的reshow“新产品””表单(正好在“产品控制器”中的“创建””方法中)

问题是Rails在这种情况下不会再次执行相关的javascript文件(例如products.js.coffee)。然后,基于javascript的html表单元素无法正常显示(因为
$(“.checkbox”).iCheck({…})
不会执行)


我如何解决这个问题

这可能是turbolinks的问题。查看
jquery turbolinks
gem,或尝试以下操作:

ready = ->

  ...your coffeescript goes here...

$(document).ready(ready)
$(document).on('page:load', ready)

您也可以尝试禁用turbolinks,看看是否确实存在问题。

我刚刚发现我的问题是因为Paloma Gem。但根据我的问题,你的回答仍然完全“正确”。