在我的一个应用程序中,我想在有人更改下拉菜单中的值时更新数据.我用turbo_stream美元做了那件事.我的下拉列表中有很多值,我也想搜索它们.因此,我使用的是select2 rails gem.但当我应用selt2时,我遇到了一些问题,例如,selt2仅应用于最后一个下拉项.如果我有10个数据,它会跳过前9个数据,并且只适用于最后一个下拉列表.
100
工作配置:
- Rails-7.0.4
- Ruby-3.1.2
在这里,我添加下拉代码,其中我使用turbo_stream更改了值,
Before Adding select2,个
<div data-controller="devdropdownbox">
<%= f.select :status, Developer.developer_stauses(developer.id).map {|key, value| [key.humanize, value]}, data: { action: 'change->dropdownvalues#changeStatus', turbo_frame: :assign_interview_modal}, class: "bg-primary" %>
</div>
After Adding select2个
为了应用selt2,我在下拉列表中添加了一个autosuggest class,并编写了大约JavaScript个代码.
<div data-controller="devdropdownbox">
<%= f.select :status, Developer.developer_stauses(developer.id).map {|key, value| [key.humanize, value]}, data: { action: 'change->dropdownvalues#changeDeveloperStatus', turbo_frame: :assign_interview_modal}, class: "bg-primary autosuggest" %>
</div>
JavaScript for autosuggest,
<script>
$(document).ready(function() {
$('.autosuggest').select2({
});
});
</script>
当页面DOM准备好时,就会执行JavaScript.
因此,添加此选项后,所有值都会继续正确更新,但正如我前面所说的,selt2仅应用于最后一组数据.我还增加了一些造型.
我附上了问题的截图,以便更好地解释它