繁体   English   中英

Ruby on Rails多选下拉列表

[英]Ruby on Rails multi select dropdown

首先,我需要在Rails中实现这个HTML表单,它是一个可以多选的语言下拉列表。 其次,存储用户选择的多种语言的最佳方法是什么?

<div class="button-group">
  <label class="form-control" data-toggle="dropdown">Language <span class="fa fa-angle-down"></span> </label>
    <ul class="dropdown-menu2 dropdown-menu">
      <li>
        <a href="#" class="small" data-value="" tabIndex="-1"><input type="checkbox" /> No Other Language</a>
      </li>
      <li>
        <a href="#" class="small" data-value="arabic" tabIndex="-1"><input type="checkbox" /> Arabic</a>
      </li>
      <li>
        <a href="#" class="small" data-value="french" tabIndex="-1"><input type="checkbox" /> French</a>
      </li>
      <li>
        <a href="#" class="small" data-value="spanish" tabIndex="-1"><input type="checkbox" /> Spanish</a>
      </li>
  </ul>
</div>
  • 首先存储用户语言的多个值,创建与用户模型具有一对多关系的语言模型。

     class Language < ActiveRecord::Base belongs_to :user end 

  • 要存储语言选项,您可以在用户模型中创建枚举:

     class User < ActiveRecord::Base has_many :languages enum language: {:english=>1, :arabic=>2, :french=>3, :spanish=>4} end 

  • 并在表单中添加多选项try(也是使用check_box的一个不错的选择):

     <%= f.select :languages, {}, User.languages.each { |k, v| [k, v]}, :multiple => true %> 

    \n\n

    <%User.languages.each do | k,v | %> <%= check_box:languages,k.humanize,value:v%> <%= label:languages,k.humanize%> <%end%>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM