html - Ruby on Rails 多选下拉菜单

标签 html ruby-on-rails

首先,我需要在 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>

最佳答案

  • 首先要存储 Users Languages 的多个值,创建一个与 User 模型具有一对多关系的 Language 模型。

    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

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

    <%= f.select :languages, {}, User.languages.each { |k, v| [k, v]}, :multiple => true %><p></p>
    
    <p><% User.languages.each do |k, v| %>
         <%= check_box :languages, k.humanize, value: v %>
         <%= label :languages, k.humanize %>
    <% end %></p>

关于html - Ruby on Rails 多选下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49569560/

相关文章:

ruby-on-rails - Rails 控制台执行代码的陈旧副本

ruby-on-rails - 使用 Nokogiri 和正则表达式解析 Ruby XML 文档中的编码标签

ruby-on-rails - routes.rb - 不支持 Controller 名称

ruby-on-rails - SSH 和 -bash : fork: Cannot allocate memory Ubuntu , rails、Passenger、redis、sidekiq

javascript - jQuery Mobile 弹出屏幕大小

html - 如何在网站上找到损坏的链接

javascript - 下拉列表旁边的 HTML 5/CSS 按钮

ruby-on-rails - Rails 渲染状态 : :not found missing template error

HTML 视频不适用于 iPhone

javascript - 仅对类中的一个单击元素执行操作