rails select 使用


Ruby代码   收藏代码
  1. <select name="payment">  
  2.  <option value="1">VISA</option>  
  3.  <option value="2">MasterCard</option>  
  4.  <option value="3">Switch</option>  
  5. </select>  



在rails中实现这类列表框,可以使用如下几个方法 
1) 使用select 

Ruby代码   收藏代码
  1. api:  
  2. select(object, method, choices, options = {}, html_options = {})
    在ActionView::Helpers::FormOptionsHelper中定义
    • object事一个实体化变数,这里很明显的就是要摆上model物件嘛!
    • method则是object的一个属性,也是资料表中的对应项目
    • choices就是要被选的选项,可以事阵列或者事哈希(Hash)
    • options与html_options则是一些选项
  3.   
  4. 例如:  
  5. <%= select( "payment""id", { "Visa" => "1""Mastercard" => "2"}) %>  
  6.   
  7. 或者使用map填充  
  8. <%= select ("payment""id"@payments.map {|u| [u.name,u.id]}) %>  
  9.   
  10.   
  11. 对应的控制器中可以使用下列代码获取内容:  
  12. @payments = Payment.find(:all)  
  13. @selected_payment = @payments[2]  



2) 使用select_tag 

Ruby代码   收藏代码
  1. api:  
  2. select_tag(name, option_tags = nil, options = {})  
  3.   
  4. 用法如下:  
  5. <%= select_tag "payment""<option>VISA</option>" %>  
  6.   
  7. <%= select_tag "payment", options_for_select([ "VISA""MasterCard""Switch" ], "MasterCard") %>  
  8.   
  9. <%= select_tag "payment", options_for_select(%w{ VISA Mastercard Switch }) %>  
  10. %w是字符串数组的简写方式,字符串数组中的每个字符串用空格隔开  
  11.   
  12. 下面可以实现多选  
  13. <%= select_tag 'payment[]', options_for_select(@payments), :multiple => true:size => 3 %>  
  14. @payments是在控制器中定义的hash:  
  15. @payments = {'Visa' => 1, 'Mastercard' => 2, 'Switch' => 3}  
  16.   
  17. 对应的控制器中可以使用下列代码获取内容:  
  18. params[:payment]  



3)使用 collection_select 

Ruby代码   收藏代码
  1. api:  
  2. collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})  
  3.   
  4. 用法如下:  
  5. <%=   
  6. @payments=Payment.find :all  
  7. collection_select(:payment:id@payments:id:name, options ={:prompt => "-Select a payment"}, :class =>"payment") %>  
  8.   
  9. 对应的控制器中可以使用下列代码获取内容:  
  10. selected_payment = params[payment][id] 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用HTML Form以及Rails的form_for和form_tag可以方便地创建表单,其中包括多选下拉框。下面是一些使用技巧: 1. 使用form_for创建表单: ``` <%= form_for @model do |f| %> <%= f.select :attribute, options_for_select([["Option 1", 1], ["Option 2", 2], ["Option 3", 3]], @model.attribute), {}, multiple: true %> <%= f.submit "Submit" %> <% end %> ``` 其中,options_for_select可以为选项提供一个数组,第一个元素是选项的标签,第二个元素是选项的值。在这个例子中,我们创建了一个多选下拉框,它会将选中的值存储在@model.attribute中。 2. 使用form_tag创建表单: ``` <%= form_tag some_path do %> <%= select_tag :attribute, options_for_select([["Option 1", 1], ["Option 2", 2], ["Option 3", 3]], params[:attribute]), {}, multiple: true %> <%= submit_tag "Submit" %> <% end %> ``` 这个例子中,我们使用form_tag创建表单,并创建了一个多选下拉框,它会将选中的值存储在params[:attribute]中。 3. 使用select2插件: select2是一个快速创建具有搜索功能的下拉框的jQuery插件。要使用它,首先需要将它添加到项目中: ``` # application.js //= require select2 # application.css *= require select2 *= require select2-bootstrap ``` 然后,可以使用下面的代码创建select2下拉框: ``` <%= f.select :attribute, options_for_select([["Option 1", 1], ["Option 2", 2], ["Option 3", 3]], @model.attribute), {}, multiple: true, class: "select2" %> <script> $(document).ready(function() { $('.select2').select2(); }); </script> ``` 在这个例子中,我们将select2应用于多选下拉框,它会在下拉菜单中添加搜索框,并使用户能够更容易地查找选项。 希望这些技巧对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值