Rails 5:设置默认值时select,对应的jquery函数returns的值错误

Rails 5: When setting the default value of a select, the corresponding jquery function returns the wrong value

我正在更新我的 rails 应用程序。自从我达到 rails 5 后,我发现了与设置默认值有关的意外行为。

目前我在

该应用正在使用 jquery3

我有以下选择:

<select name="cat_id" id="cat_id" title="Object" class="select outtaHere">
   <option value="-1">option1</option>
   <option value="1">option2</option>
   <option value="2">option3</option>
</select>

我使用以下函数来 build 我的 select 标签:

def q_select_tag(model, name, model_class, title = nil)
    options_list = model_class.all.collect{ |r| [r[ApplicationHelper::description_column], r.id] } #[["option1", -1], ["option2", 1], ["option3", 2]]
    defaultOption = 1
    select_tag name, options_for_select(options_list, defaultOption), :title => title, :class => 'select'  
end

在我的 ERB 中,我这样称呼它:

 <%= q_select_tag q, :cat_id, category, label %>

我在这个erb中还有一个jquery函数来修改我的表格:

<script type="text/javascript">
$(function() {
  $('select#cat_id').change( function() {
    console.log($(this).val());
  })});
jQuery('select#cat_id').change();
</script>

当我 运行 它似乎工作正常,但是当我在默认选项 option2(值:1)和 option1(值:-1)之间切换时,我的 jquery 函数 returns总是-1。当我在选项 1 和选项 3 或选项 2 和选项 3 之间切换时,不会发生这种情况。

这是我的 firefox 的控制台,它在选项 2 和选项 1 之间来回切换,然后在选项 2 和选项 3 之间切换:

我试图在网上找到这个问题,但没有成功。

我做错了什么?

供参考: 我可以在更新到 rails 5.1.7 和 ruby 2.3.0 后解决问题,问题已解决。