您的位置:首页 > 编程语言 > Ruby

ruby on rails select下拉框的使用,包括实现下拉框内容匹配搜索

2017-08-16 16:53 597 查看
 select下拉框显示固定内容 select下拉框 枚举法

例如在student表单中,在拉框中显示性别“男”,“女”:

html代码:
<div class="field">
<%= f.label :性别 %><br>
<%= f.select :sex, Student.sexes.keys %>
</div>
在这个模型的student.rb中:
enum sex: {
"女" => 0,
"男" => 1
}
validates :sex, inclusion: sexes.keys 

<!-- 更多写法 -->
<div class="public_form">
  <label class="label">是否完成合同:</label>
  <%= f.select :state_contract, [["是",1],["否",2]],html: { class: "public_select" }%>
</div>

select下拉框内容为从数据库班级clazz表中查的数据

将数据库中clazz表中的班级名称显示在下拉框中,从数据库查clazz_name和id,clazz_name用来显示,id用来传递给clazz_id,form表单提交:

html代码(复制时候将换行去掉),加try异常处理:
<div class="field">
<%= f.label :班级 %><br>
<%= f.select :clazz_id,options_for_select(Clazz.all.map{|f| [f.clazz_name, f.id]},
[@student.try(:clazz).try(:clazz_name), @student.try(:clazz).try(:id)]) %>
</div>

<!-- 更多写法 --><label class="">班级:</label>

<%= f.select :clazz_id_eq, Clazz.select(:clazz_name, :id).distinct.collect {|p| [ p.clazz_name, p.id ]}.insert(0,'') %>


<!-- 更多写法 -->
<div class="public_form">

 <label class="label"><span>*</span>项目状态:</label>

  <%= f.select :kind, Project::KIND.to_a.map(&:reverse), { :include_blank => false }, html: { class: "public_select" } %>

  <span class="validate-option"></span>

</div>
<!-- 在project.rb中添加如下代码 -->
KIND = {'ZX' => '执行', 'YF' => '研发', 'YW' => '运维', 'XS' => '销售', 'RC' => '日常','GB' => '关闭'}


select下拉框中匹配搜索:http://blog.csdn.net/u013601033/article/details/77248480
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息