我有一个Rails应用程序,最近升级到5.0.0.RC1
。大部分过渡很顺利,但是我在使用新的Turbolinks时遇到了一些麻烦。在我的应用程序中,例如使用了这个 gem:
gem 'chosen-rails'
我的 application.js
文件看起来像这样:
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require best_in_place
//= require tether
//= require bootstrap
//= require chosen-jquery
//= require_tree .
//= require turbo links
当我点击链接并渲染视图时,我的 chosen-query
(best_in_place
不太好用)在初始加载时不起作用,但如果我强制刷新页面则可以正常工作。下面是我得到的结果的图像:
![How it looks now](https://istack.dev59.com/y4bOl.webp)
![enter image description here](https://istack.dev59.com/SQ3J0.webp)
redirect_to ...
,则期望的外观仅在进行硬刷新后才能正常显示。我的下拉列表的代码如下:
= select_tag :screen, options_from_collection_for_select(@screens, "id", "name"), id: "screen-selection", prompt: "Jump to screen", class: 'form-control chosen-select', style: "max-width: 250px !important"
重定向 (redirect_to
) 后的结果如下所示:
<select name="screen" id="screen-selection" class="form-control chosen-select" style="max-width: 250px !important">[...]</select>
...之后进行了一次艰难的页面重新加载,我得到了以下结果:
<select name="screen" id="screen-selection" class="form-control chosen-select" style="max-width: 250px !important; display: none;">[...]</select>
<div class="chosen-container chosen-container-single" style="width: 190px;" title="" id="screen_selection_chosen"><a class="chosen-single"><span>Jump to screen</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off"></div><ul class="chosen-results"><li class="active-result result-selected" data-option-array-index="0" style="">Jump to screen</li><li class="active-result" data-option-array-index="1" style="">tests</li></ul></div></div>
在一个 .coffee
文件中,我尝试像这样初始化chosen
:
# enable chosen js
$('#screen-selection').chosen({
width: '190px'
})
我做错了什么,有什么想法吗?