首页 > 解决方案 > 如何在Rails的collection_select中使用控制器变量in selected field?

问题描述

假设我的控制器中有这个数组变量:@estudiantes_seleccionados = @clase.estudiantes

具体来说,在:

def set_clase
  @clase = Clase.find(params[:id])
  @estudiantes_seleccionados = @clase.estudiantes
end

如何在视图中的selected:字段中使用它(@estudiantes_seleccionados),collection_select以便在加载下拉列表时预选变量中的多个值?

<%= collection_select(:estudiantes, :id, Estudiante.all, :id, :id_campus, {selected: @estudiantes_seleccionados}, {class: 'form-control', multiple: 'true'}) %>

问题似乎是multiple: 'true'。当我删除它时,只有@estudiantes_seleccionados 的一个值在下拉列表中被预选,但是当它存在时,数组中的任何值都不会出现。

那么,如何让@estudiantes_seleccionados下拉列表中的所有值都显示为预选?

标签: ruby-on-rails

解决方案


尝试以下操作:

<%= collection_select(:estudiantes, :id, Estudiante.all, :id, :id_campus, {selected: @estudiantes_seleccionados.map(&:id)}, {class: 'form-control', multiple: 'true'}) %>

推荐阅读