在我的一个应用程序中,我想在有人更改下拉菜单中的值时更新数据.我用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仅应用于最后一组数据.我还增加了一些造型.

我附上了问题的截图,以便更好地解释它

Screenshot of problem :
enter image description here

推荐答案

这类问题最近出现在我的Rails项目中.通过使用html Select 标记而不是rails f.select下拉菜单,我能够解决这个问题.您可以使用标准的HTML下拉菜单.

在这里,我用一大段HTML代码替换了刺激性Rails代码.

Try with this code:

<div data-controller="devdropdownbox">
  <select class="autosuggest bg-primary" data-action="change->dropdownvalues#changeDeveloperStatus" data-turbo-frame="assign_interview_modal" >
    <% Developer.developer_stauses(developer.id).each do |key, value| %>
      <option value="<%= value %>"><%= key %></option>
    <% end %>
  </select>
</div>

Ruby-on-rails相关问答推荐

Rails 7.1.3如何在生产环境中查看堆栈跟踪

ActiveAdmin:的呈现索引表在父级的显示页中有许多资源

如何配置我的 Rails 应用程序(使用 Puma)以通过 HTTPS 提供服务?

select2 未应用于所有下拉列表;它只适用于数据的最后一条记录

如何使用 Rails 3 / Rack 在没有 www 的情况下重定向?

rails:防止闪烁消息显示两次

在 Windows 上使用 Ruby 进行开发

从 Rails 模型内部访问翻译文件 (i18n)

不带参数的 request.fullpath

使用 jQuery 在 Rails 中不显眼的动态表单字段

如何获取包含表的列名的数组

批量查找 mongoDB 记录(使用 mongoid ruby​​ 适配器)

Ruby on Rails 中的MySQL 服务器已经消失

测试:如何在不损失速度的情况下专注于行为而不是执行?

form_for 未定义的方法 `user_path'

'respond_to' 格式语句中的 `:location => ...` 和 `head :ok` 是什么意思?

Rails 生成 has_many 关联

ActiveRecord 中多列的索引

您如何查看 ruby​​ 中的调用堆栈示例?

如何在 Rails 4 中测试控制器关注点