首先,我需要在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>
答案 0 :(得分:0)
首先存储用户语言的多个值,创建与用户模型具有一对多关系的语言模型。
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 %>
<% User.languages.each do |k, v| %>
<%= check_box :languages, k.humanize, value: v %>
<%= label :languages, k.humanize %>
<% end %>