我已经构建了一个多选表单(在form_for中),如下所示:
<div class="rounded-block quarter-wide radio-group">
<h4>Exclude customers from source:</h4>
<%= f.select :excluded_sources, options_for_select(User.select(:source).group(:source).order(:source).map {|u| [u.source,u.source]}), {:include_blank => false}, {:multiple => true} %>
<%= f.error_message_on :excluded_sources %>
</div>
这适用于我需要的东西。唯一的问题是当我回到显示选项的页面时,我看不到先前选择的内容(即在呈现时DB中已经存在的内容)。是否有一种简单的方法可以让轨道显示以前选择的内容?我很想不要切换到复选框。
在我的匹配配置文件模型中(对应于存储excluded_sources的表),我有这个:
serialize :excluded_sources
答案 0 :(得分:3)
最终成为相关部分:
:selected => matching_profile.send(:excluded_sources)
这里:
<div class="rounded-block quarter-wide radio-group">
<h4>Exclude customers from source:</h4>
<%= f.select :excluded_sources, options_for_select(User.select(:source).group(:source).order(:source).map {|u| [u.source,u.source]}, :selected => matching_profile.send(:excluded_sources)), {:include_blank => false}, {:multiple => true} %>
<%= f.error_message_on :excluded_sources %>