Ruby on Rails 编程之select二级联动简例
功能:
点击select下拉菜单,选中某一option, 页面中的text随着更新
要点:
1. select的简例
2. 如何控制selected 即按条件显示指定的option
3. 如何根据select结果刷新页面
1 select 的语法: 如何控制selected 即按条件显示指定的option 关于如何选中某一特定的option,在参考1中有这样的描述
最基本的选择列表框用select helper方法来创立。
form.select(:attribute, choices, options, html_options)
choices的参数讲出现在选择列表框中,参数可以是任何可列举的对象(像数组,hashes, 并且从数据库中查找出来的数据也是允许的).
最简单的选择表但是字符串数组,每一个字符串变成了下拉列表的选项,而且如果其中的一个和a@variable.attribute想匹配的话,他将被选中。
form.select(:attribute, choices, options, html_options)
简例:
<% form_for( :forminfo, :url =>'/my_test' ) do |f| %>
<p>Book Name:</p>
<p>
<%= f.select(:id, @bookslist.map{|c| [c.name, c.id]} ) %>
</p>
<p>
<%= f.collection_select(:id, @bookslist, :id, :name)%>
</p>
<% end %>
注意:
上面的代码包含了 select 和 collection_select。
2
根据上述信息,只要匹配了@variable.attribute的那一条option就会被selected.
controller类似于这样:
@bookslist = Book.find(:all, : order => "id ASC", :select=>"id,name,author")
@forminfo = Book.new()
@forminfo.id = 2
注意: forminfo 就是参考1描述中的@variable.attribute的variable,而f.select(:id, ....) 的id就是attribute. 所以很简单,要想匹配某一条option,只要在controller中设定@forminfo.id。
3 如何根据select结果刷新页面
简单的原理: 根据select的onchange事件,得到当前选中的id,返回到后台根据这个id得到相应的数据,再刷新页面
代码如下:
selectdemo.rhtml
<% form_for( :forminfo, :url =>'/my_test') do |f| %>
<p>Book Name:</p>
<p>
<%= f.select(:id, @bookslist.map{|c| [c.name, c.id]},
{ :include_blank => false },
{:onchange => remote_function(
:update => 'author',
:method => 'get',
:with => "'id='+value",
:url=> {:action=> 'selectdemo' }
)}
)
%>
</p>
<span id="author">
<%= @forminfo.author %>
</span>
<% end %>
my_test_controller.rb
def selectdemo
@bookslist = Book.find(:all, : order =&gt; &quot;id ASC&quot;)
if params!=nil &amp;&amp; params[:id]
@forminfo = Book.find(:first,
:conditions =&gt; [&quot;id = ?&quot;, params[:id]]
)
if @forminfo.author
render_text @forminfo.author
else
render_text &quot;Author Unknown&quot;
end
else
@forminfo = @bookslist.first()
end
end
http://ansondrew.bokee.com/6540554.htm
分享到:
相关推荐
在Ruby on Rails(Rails)框架中,开发人员经常需要实现各种用户交互功能,例如三级联动选择,这在处理地理区域数据时尤其常见。本篇我们将深入探讨如何在Rails应用中利用Ext.js库的tree组件来创建一个中国省市地区...
Select2用于Rails资产管道 是基于jQuery的选择框的替代品。 它支持搜索,远程数据集和结果的无限滚动。 select2-rails gem将Select2 jQuery插件与Rails资产管道集成在一起。 用法 安装select2-rails gem 将select2...
《Rails101_by_rails4.0》是一本专注于Rails 4.0.0版本和Ruby 2.0.0版本的自学教程书籍,它定位于中文读者,旨在成为学习Rails框架的参考教材。Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它...
#### 二、作者介绍与背景 - **作者**: xdite,一位经验丰富的开发者,专注于Ruby on Rails框架。 - **作品**: 除了《Rails 101 入门电子书》外,xdite还编写了其他几本书籍,如《Maintainable Rails View》、《Lean...
Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...
此外,第二版还深入讨论了Rails 3.x和4.x中的路由系统,以及如何使用Unobtrusive JavaScript(UJS)实现更干净、分离的前端代码。 这两本书都强调了敏捷开发的原则,如迭代开发、持续集成、用户故事和重构。它们...
从给定的文件信息来看,我们正在探讨的是一本关于Ruby on Rails的书籍,书名为《Simply Rails2》,作者是Patrick Lenz。本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是...
Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...
标题 "Rails" 指的是 Ruby on Rails,一个开源的Web应用程序框架,它基于Ruby编程语言,遵循MVC(模型-视图-控制器)架构模式。Rails由David Heinemeier Hansson在2004年创建,其设计理念是强调代码的简洁性、DRY...
#### 二、什么是Rails? - **定义**:Rails是一种用于快速开发Web应用程序的开源框架,基于Ruby语言。 - **特点**:Rails遵循“约定优于配置”的原则,简化了Web应用的开发过程,使得开发者能够专注于业务逻辑而非...
本文将基于给定文件信息,详细介绍Ruby on Rails的手动安装步骤,旨在为初学者提供一份教学级的安装指南。 #### 安装前准备 - **Ruby 解释器**:需先安装Ruby解释器,建议选择稳定版本,如Ruby 1.8.6.111。 - **...
Rails Recipes是一本针对Ruby on Rails框架的实用书籍,它收集了一系列高效解决问题的技巧和方法,也被称为“Rails开发者的宝典”。作者们通过分享自己的经验和见解,为Rails程序员提供了一本既有实际操作指导又有...
Rails指南中文版是针对Ruby on Rails框架的一份详尽教程,旨在帮助开发者深入理解并熟练掌握这个强大的Web应用开发工具。Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-...
在开发Web应用时,Ruby on Rails(简称Rails)框架因其高效、简洁的代码风格和强大的社区支持而备受青睐。Aptana是一款强大的集成开发环境(IDE),尤其适用于Rails项目的开发,它提供了丰富的特性来提升开发效率。...
本书《Component-Based Rails Applications》主要介绍了如何使用Rails引擎(Rails Engine)进行基于组件的Rails应用开发,以及如何对应用程序的大型模块进行拆分和模块化。以下是书中一些核心知识点的详细说明: 1....
rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails ...
**高级Rails** Rails,全称为Ruby on Rails,是一款基于Ruby编程语言的开源Web应用程序框架,以其MVC(模型-视图-控制器)架构模式而闻名。"Advanced Rails" 涵盖了Rails开发中的高级主题和技术,是Ruby on Rails...