多选不显示模型中的选定值,但单选在轨道上显示红宝石



我在轨道上使用Ruby,但是在多选表单中显示数据库中的选定值时遇到问题。单选工作正常,但多选显示空白值,我已经检查了来自控制器的值,它们是正确的,但它不显示值!!我正在使用多选的jquery插件,但我认为这不是问题所在。

<!-- chosen select for course categories -->
<div class="row">
  <div class="medium-5  column with_chosen"> 
    <%= f.collection_select :categories,
    Category.all ,:id,:name,
    { include_blank: false},
    { :multiple=>true, class: 'chosen-select medium',  :data => { :placeholder => ' ' }}
    %>
  </div>
</div>
<!-- change partner for course -->
<div class="row">
  <div class="medium-5  column"> 
    <%= f.collection_select :partner,
      Partner.all, :id,:name ,
    { include_blank: false },
    { class: 'chosen-select', :multiple=>false, :data => { :placeholder => ' Brand Partner' }}
    %>
  </div>
</div>

有什么建议会很棒吗?

可能适合你。

<!-- chosen select for course categories -->
<div class="row">
  <div class="medium-5  column with_chosen"> 
    <%= f.collection_select :categories,
    { :selected=>Category.all.collect{|c| c.id}},
    { include_blank: false},
    { :multiple=>true, class: 'chosen-select medium',  :data => { :placeholder => ' ' }}
    %>
  </div>
</div>
<div class="row">
  <div class="medium-5  column with_chosen">
  <%@course_categories=[]%>        
      <% @course.categories.each do |t| %>
      <% @course_categories << t.id.to_s %>
      <% end %>
    <%= f.collection_select( :categories,
    Category.all ,:id,:name,
    { include_blank: true, selected: @course_categories },
    { :multiple=>true, class: 'chosen-select medium',  :data => { :placeholder => ' ' }})
    %>
  </div>
</div>

所以我所做的是我向多选传递了一个转换为 sting 的 id 数组,然后它匹配 id 并显示数据库中的选定值!!

最新更新