- <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 = {})
在ActionView::Helpers::FormOptionsHelper中定义
- object事一个实体化变数,这里很明显的就是要摆上model物件嘛!
- method则是object的一个属性,也是资料表中的对应项目
- choices就是要被选的选项,可以事阵列或者事哈希(Hash)
- 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资产管道 是基于jQuery的选择框的替代品。 它支持搜索,远程数据集和结果的无限滚动。 select2-rails gem将Select2 jQuery插件与Rails资产管道集成在一起。 用法 安装select2-rails gem 将select2...
在Rails中,日期控件通常通过辅助方法(helper methods)实现,如`date_select`,`datetime_select`或`time_select`等。这些辅助方法能够自动生成HTML元素,与后台模型的日期字段对应,方便数据绑定和验证。 1. **...
jquery-rails, 一个 gem,用于自动使用jQuery和 Rails 3 railsjQuery 面向 Rails 如此伟大。这里 gem 提供:jQuery 1.7.2jQuery UI 1.8.18 ( 仅适用于 javascript )jQuery UJS适配器assert_select_j
Rails应用通常会使用关系型数据库作为数据存储,MySQL是一种非常流行的选择。 ##### 1. 下载与安装MySQL - 下载MySQL安装包并进行安装。 - 运行MySQL服务。 ##### 2. 配置MySQL路径 为了让MySQL在终端中可以正常...
在 Rails 2.x 中,许多使用哈希参数的查询方法如 `:conditions`, `:include`, `:joins` 等在 Rails 3.1 中被标记为过时,虽然在3.1版本中仍然可用,但计划在 Rails 3.2 中完全移除。这些变化主要是为了引入一个新的...
使用`pluck`或`select`只获取必要的字段,降低数据传输量。 2. **索引添加**:为频繁用于排序、分组或查询的字段创建索引,显著提升查询速度。但要注意,过多的索引会影响写操作,需平衡读写性能。 3. **数据库...
Ajax-select_all-rails.zip,易于选择和取消选择所有复选框,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的...
4. **数据查询**:Rails的ActiveRecord层提供了强大的查询接口,如`where`、`select`、`order`等,使得开发者能方便地从数据库中检索、过滤和排序数据。ActiveRecord还支持链式查询,使得编写复杂的查询语句变得简单...
<%= f.collection_select :role_id, Role.all, :id, :name %> ``` 7. **嵌套表单** 如果需要处理嵌套模型,Simple Form同样提供了很好的支持。使用`accepts_nested_attributes_for`在模型中声明,然后在表单中...
该宝石提供: jQuery 1、2和3 jQuery UJS适配器assert_select_jquery在Ruby测试中测试jQuery响应版本号从v2.1开始,jquery-rails gem遵循以下版本指南,以从Gemfile中更好地控制应用程序的jQuery版本: patch ...
在`lib/influxdb/rails/query`目录下,诸如`query_methods.rb`、`select_methods.rb`等文件定义了查询方法,使得开发者可以像操作ActiveRecord一样对InfluxDB进行复杂查询。例如,`where`方法用于指定查询条件,`...
在这里,我们有一个名为Event的模型,该模型具有start_time属性,将与Combined_time_select一起使用。 因为Rails的time_select字段提交了单独的值,所以当我们将字段组合为一个时,在控制器方面会产生一些开销。 ...
SelectMultiple for Rails [![宝石版本] 是一个小巧的jQuery插件,用于使用multiple属性自定义选择。 select-multiple-rails gem将select-multiple与Rails资产管道集成在一起。 用法 安装select-multi-rails gem ...
- **最佳实践**:提供使用 Ruby 特性来优化 Rails 应用程序的最佳实践。 - **高级特性**:讨论 Ruby 中的一些高级特性,如元编程和多线程,并展示如何在 Rails 中利用这些特性。 - **性能优化**:分享一些关于如何...
货币选择 在Ruby on Rails项目中添加一个currency_select辅助函数,使您可以获取可用货币HTML select列表。 货币列表由。安装将以下内容添加到您的Gemfile中: gem 'currency_select'例子 currency_select ( 'user' ...
安装将此行添加到您的应用程序的Gemfile中: gem 'multiple_select_rails' 然后执行: $ bundle或将其自己安装为: $ gem install multiple_select_rails用法包括多个选择javascript 添加到您的应用程序/资产/...
- 使用 RubyGems 安装 Rails 3: ```bash gem install rails -v 3.2.13 ``` 4. **创建测试项目** - 使用 Rails 3 创建名为 `phoneqq.com` 的测试项目: ```bash rails new phoneqq.com cd phoneqq.com ``...
React Rails表单助手 安装 通过npm使用 npm install --save react-rails-form-helpers ...select />组件的微小包装。 “字段”组件 没有Tag后缀的组件只是有些神奇。 他们使用React上下文为嵌套属性生成
在Rails中,`scope`主要用于模型类中,但也可以在其他地方使用,例如路由配置或Rake任务等。 #### `scope`的实现 在ActiveRecord模块中,`scope`方法定义在`ActiveRecord::Scoping::Named::ClassMethods`模块中。...
可以使用`select_tag`或`collection_select`辅助方法,结合JavaScript(例如jQuery)来实现动态加载。假设我们有`regions`控制器和`show`动作,视图可以这样写: ```erb (model: @selected_region, local: true) do...