很多时候我们需要实现菜单的级联。那么在ROR中怎么实现:
首先 分别创建3个资源:
ruby script/generate scaffold country name:string
ruby script/generate scaffold city country_id:integer name:string
ruby script/generate scaffold person country_id:integer city_id:integer name:string
他会分别创建国家、城市、人员3个资源
其次,创建数据库。
rake db:create创建数据库
rake db:migrate 迁移数据
第三,model建立关系
class City < ActiveRecord::Base
belongs_to :country
has_many :people
end
class Country < ActiveRecord::Base
has_many :cities
has_many :people
end
class Person < ActiveRecord::Base
belongs_to :country
belongs_to :city
end
第四,修改app/views/layouts/people.rhtml,包含prototype:
<%= javascript_include_tag 'prototype' %>
第五,修改people/new.html.erb
<p>
<b>Country</b><br />
<%= f.select (:country_id, Country.find(:all).collect {|c| [ c.name, c.id ] }, { :include_blank => true }, :onchange => remote_function(:update => "cities", :method => "get", :with => "'country_id=' + value + '&partial=select'", :url => { :controller => :cities, :action => :index})) %>
</p><p>
<b>City</b><br />
<div id="cities"> <%= f.select (:city_id, []) %> </div>
</p>
第六,修改city_controller 的index方法:
def index
if params[:country_id]
@cities = City.find(:all, :conditions => ["country_id = ?", params[:country_id]])
else
@cities = City.find(:all)
end
respond_to do |format|
format.html { render :partial => params[:partial]}
format.xml { render :xml => @districts.to_xml }
end
end
第七:创建_select.html.erb模板
<%= select(:person, :city_id, @cities.collect {|c| [c.name, c.id]}) %>
分享到:
相关推荐
本教程将深入讲解如何在不使用Devise的情况下,在Ruby onRails中自定义API密钥认证机制。 首先,我们需要创建一个`api_keys`表来存储API密钥。运行以下命令生成迁移文件: ```bash rails generate migration ...
在这个实例中,我们将探讨如何在Rails应用中使用SQLite3数据库,通过`sqlite3.exe`这个小巧而强大的数据库管理工具来实现数据存储。SQLite3是嵌入式的数据库引擎,无需单独的服务器进程,非常适合用于开发阶段或者轻...
通过阅读《rubyonrails.pdf》这份教程,你可以一步步学习如何安装Rails环境,创建第一个应用程序,设置数据库,编写控制器和视图,以及进行测试。随着对Rails的理解加深,你将能够构建出复杂、功能完善的Web应用。
在这个"RubyOnRails做的博客"项目中,我们可以看到作者用RoR实现了一个功能齐全的博客系统。下面将详细探讨RoR框架的核心特性以及在构建博客系统时可能涉及的关键知识点。 1. MVC架构:RoR中的MVC模式使得开发者...
通过阅读"Ruby on Rails 敏捷开发实践.pdf"和运行"RubyOnRails教程中文版.exe",你可以深入了解Rails的各个方面,并逐步掌握这个强大的Web开发框架。不断实践,你将能够利用Rails快速构建高质量的Web应用。
课程设计--在线考试系统。使用RubyonRails实现。在服务器上部署后可以由老师管理其考试,并发布给学生参加考试。由于需要
标题 "RubyOnRails的一个入门小例子" 暗示了我们将探讨的是关于Ruby on Rails框架的基础知识,这是一个用于构建Web应用程序的开源工具。Ruby on Rails(简称Rails)是基于Ruby编程语言的,它遵循MVC(Model-View-...
### Ruby on Rails与MySQL安装详解 #### 环境配置概览 本文将详细介绍如何在Ubuntu 10.10上从源代码编译安装Ruby 1.8.7、Rails 2.3.5以及MySQL 5.1,旨在为开发者提供一个稳定且高效的开发环境。...
rubyonrails API文档 好东东哦 【英文】
ActiveRecord实现了对象关系映射(ORM),将数据库表映射为Ruby类,使得操作数据库如同操作对象一样简单。 3. **ActionController**:控制器处理HTTP请求,连接模型和视图。它负责接收请求数据,调用模型进行业务...
Vrails 是 Ruby on Rails 开源博客。方便想搭建自己博客平台的朋友使用,界面简洁美观,部署方便。示例代码:User.create( ... username: "yourname", password: "password", password_confirmation: ...
SmartAdmin在Ruby on Rails中的实现可能包括了预处理过的CSS和JS文件,可能已经配置好了Webpacker或Sprockets来处理前端资源,以及Bootstrap和其他前端库的集成。此外,它可能还提供了示例布局、小部件、图表和其他...
RubyonRails九日学习计划(含相关软件及书籍)时间 内容 目的 第一天 学习oracle 基本工具掌握 plsql ,sql语言,范式,索引,数据库安全,数据备份,导入导出。 熟练掌握SQL语言 第二天 1. ruby 语言历史和...