`
leon0122
  • 浏览: 45453 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Rails中的select使用

    博客分类:
  • ruby
阅读更多
假设有如下的下拉列表框

<select name="payment">
 <option value="1">VISA</option>
 <option value="2">MasterCard</option>
 <option value="3">Switch</option>
</select>


在rails中实现这类列表框,可以使用如下几个方法
1) 使用select
api:
select(object, method, choices, options = {}, html_options = {})

例如:
<%= select( "payment", "id", { "Visa" => "1", "Mastercard" => "2"}) %>

或者使用map填充
<%= select ("payment", "id", @payments.map {|u| [u.name,u.id]}) %>


对应的控制器中可以使用下列代码获取内容:
@payments = Payment.find(:all)
@selected_payment = @payments[2]



2) 使用select_tag
api:
select_tag(name, option_tags = nil, options = {})

用法如下:
<%= select_tag "payment", "<option>VISA</option>" %>

<%= select_tag "payment", options_for_select([ "VISA", "MasterCard", "Switch" ], "MasterCard") %>

<%= select_tag "payment", options_for_select(%w{ VISA Mastercard Switch }) %>
%w是字符串数组的简写方式,字符串数组中的每个字符串用空格隔开

下面可以实现多选
<%= select_tag 'payment[]', options_for_select(@payments), :multiple => true, :size => 3 %>
@payments是在控制器中定义的hash:
@payments = {'Visa' => 1, 'Mastercard' => 2, 'Switch' => 3}

对应的控制器中可以使用下列代码获取内容:
params[:payment]


3)使用 collection_select
api:
collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})

用法如下:
<%= 
@payments=Payment.find :all
collection_select(:payment, :id, @payments, :id, :name, options ={:prompt => "-Select a payment"}, :class =>"payment") %>

对应的控制器中可以使用下列代码获取内容:
selected_payment = params[payment][id]

分享到:
评论

相关推荐

    select2-rails:将Select2 javascript库与Rails资产管道集成

    Select2用于Rails资产管道 是基于jQuery的选择框的替代品。 它支持搜索,远程数据集和结果的无限滚动。 select2-rails gem将Select2 jQuery插件与Rails资产管道集成在一起。 用法 安装select2-rails gem 将select2...

    rails日期控件

    通常,这会涵盖如何引入CSS样式,如何在控制器和视图中使用辅助方法,以及如何处理前端和后端的数据交互。 6. **自定义日历插件**: 压缩包中的`calendar`可能是一个自定义的日历插件或库,用于增强Rails日期控件...

    jquery-rails, 一个 gem,用于自动使用jQuery和 Rails 3.zip

    jquery-rails, 一个 gem,用于自动使用jQuery和 Rails 3 railsjQuery 面向 Rails 如此伟大。这里 gem 提供:jQuery 1.7.2jQuery UI 1.8.18 ( 仅适用于 javascript )jQuery UJS适配器assert_select_j

    Mac上rails环境的搭建

    为了让MySQL在终端中可以正常使用,我们需要将MySQL的库路径添加到系统的`DYLD_LIBRARY_PATH`环境变量中,并设置别名以简化MySQL命令的使用。 - 显示隐藏文件:在终端中执行以下命令使隐藏文件可见。 ```bash ...

    Rails3的ActiveRecord 查询API.doc

    在 Rails 2.x 中,许多使用哈希参数的查询方法如 `:conditions`, `:include`, `:joins` 等在 Rails 3.1 中被标记为过时,虽然在3.1版本中仍然可用,但计划在 Rails 3.2 中完全移除。这些变化主要是为了引入一个新的...

    Rails实现的简历系统

    通过在控制器中定义排序逻辑,并在视图中使用链接或按钮触发排序,用户可以根据需要对简历数据进行升序或降序排列。 8. **邮件发送**:Rails的ActionMailer模块允许开发者轻松地发送电子邮件。例如,当用户提交简历...

    Complex Rails system_Rails_优化_

    使用`pluck`或`select`只获取必要的字段,降低数据传输量。 2. **索引添加**:为频繁用于排序、分组或查询的字段创建索引,显著提升查询速度。但要注意,过多的索引会影响写操作,需平衡读写性能。 3. **数据库...

    influxdb-rails-源码.rar

    当InfluxDB遇到Rails,便催生了`influxdb-rails`这一优秀的库,它旨在简化在Rails应用中使用InfluxDB的过程。本文将通过对`influxdb-rails`源码的解析,深入理解两者的结合,揭示其内在的工作机制。 首先,`...

    Rails中应用Ext.tree:以中国的省市地区三级联动选择为例

    这就是在Rails中使用`acts_as_nested_set`实现中国省市地区三级联动选择的基本步骤。通过这个功能,用户可以方便地从丰富的层级数据中选择目标地区,同时保持良好的用户体验。注意,实际应用中可能需要考虑更多的...

    Ruby - Ruby for Rails

    - **块与闭包**:介绍块的概念及其与闭包的区别,以及如何在 Ruby 中使用它们。 #### 2.5 控制流技术 - **条件语句**:讲解 if、unless 等条件语句的使用方法。 - **循环结构**:介绍 while、for、each 等循环语句...

    Ruby-SimpleForm轻松处理Rails表单

    使用`accepts_nested_attributes_for`在模型中声明,然后在表单中使用`fields_for`方法: ```ruby |address_form| %&gt; ``` 8. **标签和提示** Simple Form允许自定义输入字段的标签和提示信息。默认情况下...

    Ajax-select_all-rails.zip

    Ajax-select_all-rails.zip,易于选择和取消选择所有复选框,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的...

    Combined_time_select:Rails time_select(类似于Google日历),其中包括小时和分钟的组合time_select

    在这里,我们有一个名为Event的模型,该模型具有start_time属性,将与Combined_time_select一起使用。 因为Rails的time_select字段提交了单独的值,所以当我们将字段组合为一个时,在控制器方面会产生一些开销。 ...

    select-multiple-rails:一个小巧的jQuery插件,用于自定义带有multiple属性的selects

    在Gemfile中包含select-multiple-rails gem 'select-multiple-rails' 然后运行bundle install 包括selectmultiple javascript 添加到您的app/assets/javascripts/application.js //= require select-multiple ...

    currency_select:Ruby on Rails的货币选择帮助器

    货币选择 在Ruby on Rails项目中添加一个currency_select辅助函数,使您可以获取可用货币HTML select列表。 货币列表由。安装将以下内容添加到您的Gemfile中: gem 'currency_select'例子 currency_select ( 'user' ...

    jquery-rails:一个可将jQuery与Rails结合使用以实现自动化的宝石

    该宝石提供: jQuery 1、2和3 jQuery UJS适配器assert_select_jquery在Ruby测试中测试jQuery响应版本号从v2.1开始,jquery-rails gem遵循以下版本指南,以从Gemfile中更好地控制应用程序的jQuery版本: patch ...

    Ruby on Rails: the scope method

    # 在控制器中使用scope class CatsController def index @cats = Cat.all @tabby_cats = Cat.tabby @kitten_cats = Cat.kitten end end ``` #### `has_scope` Gem 除了在模型中定义`scope`之外,还可以使用`...

    Ruby on Rails中的ActiveRecord编程指南

    ### Ruby on Rails中的ActiveRecord编程指南 #### 一、引言 在Ruby on Rails框架中,ActiveRecord是一种用于实现数据库抽象层的对象关系映射(ORM)工具。它为开发人员提供了一种简单而强大的方式来处理数据库记录...

    multiple_select_rails:基于Rails资产管道的基于HTTP的Multiselect jQuery插件

    安装将此行添加到您的应用程序的Gemfile中: gem 'multiple_select_rails' 然后执行: $ bundle或将其自己安装为: $ gem install multiple_select_rails用法包括多个选择javascript 添加到您的应用程序/资产/...

    RVM+Ruby1.9.3+Rails3(1-Cygwin 安装配置)

    - 使用 RubyGems 安装 Rails 3: ```bash gem install rails -v 3.2.13 ``` 4. **创建测试项目** - 使用 Rails 3 创建名为 `phoneqq.com` 的测试项目: ```bash rails new phoneqq.com cd phoneqq.com ``...

Global site tag (gtag.js) - Google Analytics