`

rails select 二级联动

阅读更多
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 =&amp;gt; &amp;quot;id ASC&amp;quot;)
 
  if params!=nil &amp;amp;&amp;amp; params[:id]      
    @forminfo = Book.find(:first,      
      :conditions =&amp;gt; [&amp;quot;id = ?&amp;quot;, params[:id]]         
      )
    if @forminfo.author
      render_text @forminfo.author
    else
      render_text &amp;quot;Author Unknown&amp;quot;
    end
  else
    @forminfo = @bookslist.first()
  end
end

http://ansondrew.bokee.com/6540554.htm

分享到:
评论

相关推荐

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

    在Ruby on Rails(Rails)框架中,开发人员经常需要实现各种用户交互功能,例如三级联动选择,这在处理地理区域数据时尤其常见。本篇我们将深入探讨如何在Rails应用中利用Ext.js库的tree组件来创建一个中国省市地区...

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

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

    Rails101_by_rails4.0

    《Rails101_by_rails4.0》是一本专注于Rails 4.0.0版本和Ruby 2.0.0版本的自学教程书籍,它定位于中文读者,旨在成为学习Rails框架的参考教材。Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它...

    Rails 101 入门电子书

    #### 二、作者介绍与背景 - **作者**: xdite,一位经验丰富的开发者,专注于Ruby on Rails框架。 - **作品**: 除了《Rails 101 入门电子书》外,xdite还编写了其他几本书籍,如《Maintainable Rails View》、《Lean...

    Rails项目源代码

    Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...

    Agile Web Development With Ruby On Rails第一及第二版

    此外,第二版还深入讨论了Rails 3.x和4.x中的路由系统,以及如何使用Unobtrusive JavaScript(UJS)实现更干净、分离的前端代码。 这两本书都强调了敏捷开发的原则,如迭代开发、持续集成、用户故事和重构。它们...

    rails2-sample

    从给定的文件信息来看,我们正在探讨的是一本关于Ruby on Rails的书籍,书名为《Simply Rails2》,作者是Patrick Lenz。本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是...

    关于rails 3.1 cucumber-rails 1.2.0

    Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...

    Rails

    标题 "Rails" 指的是 Ruby on Rails,一个开源的Web应用程序框架,它基于Ruby编程语言,遵循MVC(模型-视图-控制器)架构模式。Rails由David Heinemeier Hansson在2004年创建,其设计理念是强调代码的简洁性、DRY...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    #### 二、什么是Rails? - **定义**:Rails是一种用于快速开发Web应用程序的开源框架,基于Ruby语言。 - **特点**:Rails遵循“约定优于配置”的原则,简化了Web应用的开发过程,使得开发者能够专注于业务逻辑而非...

    教学级Ruby On Rails 手动安装.pdf

    本文将基于给定文件信息,详细介绍Ruby on Rails的手动安装步骤,旨在为初学者提供一份教学级的安装指南。 #### 安装前准备 - **Ruby 解释器**:需先安装Ruby解释器,建议选择稳定版本,如Ruby 1.8.6.111。 - **...

    Rails recipes

    Rails Recipes是一本针对Ruby on Rails框架的实用书籍,它收集了一系列高效解决问题的技巧和方法,也被称为“Rails开发者的宝典”。作者们通过分享自己的经验和见解,为Rails程序员提供了一本既有实际操作指导又有...

    rails指南 中文版

    Rails指南中文版是针对Ruby on Rails框架的一份详尽教程,旨在帮助开发者深入理解并熟练掌握这个强大的Web应用开发工具。Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-...

    使用Aptana+Rails开发Rails Web应用(中文)

    在开发Web应用时,Ruby on Rails(简称Rails)框架因其高效、简洁的代码风格和强大的社区支持而备受青睐。Aptana是一款强大的集成开发环境(IDE),尤其适用于Rails项目的开发,它提供了丰富的特性来提升开发效率。...

    component base rails applications

    本书《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 2.3.2离线安装rails 2.3.2离线安装rails ...

    Advanced Rails

    **高级Rails** Rails,全称为Ruby on Rails,是一款基于Ruby编程语言的开源Web应用程序框架,以其MVC(模型-视图-控制器)架构模式而闻名。"Advanced Rails" 涵盖了Rails开发中的高级主题和技术,是Ruby on Rails...

Global site tag (gtag.js) - Google Analytics