主要将 ActiveRecord 一对一关联的实例:
Classroom has one Teacher
classroom 的属性: name,capacity,teacher
teacher 的属性:name,sex,age
利用Scaffold 生成器:
$ rails g scaffold teacher name:string sex:string age:integer
$ rails g scaffold classroom name:string capacity:integer teacher:references
Scaffold 已经为我们生成了基本的程序框架了。
然后修改app/views/classroom/_form.html.erb 的内容,添加选择老师的下拉框,并且为每个输入框添加默认值。
<%= form_for(@classroom) do |f| %>
<% if @classroom.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@classroom.errors.count, "error") %> prohibited this classroom from being saved:</h2>
<ul>
<% @classroom.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name ,{:value => "梨花教师"} %>
</div>
<div class="field">
<%= f.label :capacity %><br />
<%= f.number_field(:capacity,{:value => 20}) %>
</div>
<div class="field">
<%= f.label :teacher %><br />
<%= f.select(:teacher_id,Teacher.all.collect{|p| [p.name,p.id]},{:include_blank =>"选择老师...",:selected=>2}) %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
修改app/views/classroom/index.html.erb 的内容:
<td><%= classroom.teacher.name %></td>
即可。
访问地址 http://localhost:3000/classrooms 即可添加内容和结果了
分享到:
相关推荐
**Rails3**是Ruby on Rails框架的一个重要版本,它对之前的版本进行了大量的改进和优化,使其更加强大和灵活。Rails3的核心设计理念围绕着几个关键的概念,这些概念不仅帮助开发者编写更加简洁高效的代码,还使得...
Rails 3的发布标志着Ruby on Rails框架的一个重要里程碑,引入了一系列改进和新功能。 ### 关键知识点: #### 1. **Rails 3.0** Rails 3.0是该框架的一个重大版本更新,它对之前版本进行了大量的重构和优化,包括...
- **关联关系**:支持多种关联关系,如一对一、一对多、多对多等,使得数据模型之间的关系更加灵活和易于维护。 #### 五、验证机制 - **数据验证**:Rails 3 提供了丰富的验证机制,可以帮助开发者确保数据的有效性...
模型部分会涉及ActiveRecord的生命周期,包括创建、读取、更新和删除(CRUD)操作,以及关联(Associations)如一对一、一对多、多对多等,这些关联让数据间的复杂关系得以轻松管理。 此外,教程还会涉及表单...
- **Active Record Associations**:深入探讨Active Record的关联关系管理,如一对一、一对多等关联类型。 #### 总结 《Rails 101S》不仅是一本适合新手入门的教程,也是进阶开发者的好帮手。通过实践这些基础知识...
### 关于《Rails 3 in Action》 #### 1. Ruby on Rails, the framework - **定义**: Ruby on Rails(简称Rails)是一个基于Ruby语言的Web应用开发框架。... - **定义多对一关联**: 在模型之间建立关联关系。
- **定义**:关联是指定义模型之间的关系,如一对一、一对多等。 - **示例**:例如,在博客系统中,一篇文章可以有多个评论,这就是典型的“一对多”关系。 #### 四、查询 - **方法**:使用Active Record的方法来...
在FlexBuilder的偏好设置中,需添加对`.rb`, `.bat`, `.log`文件类型的关联,以便于编辑Rails相关的脚本和日志文件。 #### 总结 将Flex3与Rails结合,可以创建出功能丰富、视觉效果出色的Web应用。通过以上步骤,...
开发者可以定义属性、关联(如一对一、一对多、多对多)、以及验证规则,确保数据的完整性和一致性。 3. **ActionController**:控制器层处理HTTP请求,并将数据传递给视图进行渲染。它也负责调用模型来获取或更新...
3. **嵌套文档**:由于MongoDB的数据模型是基于文档的,MongoModel可以方便地处理嵌套文档,允许你在一个模型中包含其他模型实例,无需额外的关联操作。 4. **验证**:MongoModel提供了验证机制,可以确保输入数据...
"Advanced Rails" 涵盖了Rails开发中的高级主题和技术,是Ruby on Rails学习进阶的重要资源,尤其适合已经对基础Rails有一定了解的开发者。 在Web开发领域,Rails以其高效、简洁的代码和“约定优于配置”的哲学吸引...
在Rails中,数据库查询主要通过ActiveRecord来实现,这是一个强大的ORM(对象关系映射)工具,能够将数据库表与Ruby类关联,简化数据操作。 描述中虽然没有具体信息,但我们可以推测这可能是一篇关于Rails中查询...
1. Rails 3.0: Rails 3是重大升级,引入了ActionController::Metal,这是一个轻量级的控制器,用于提高性能。同时,它引入了多路由引擎支持,如Rack中间件,使得与其他Web服务器的集成更加容易。此外,ActiveRecord...
这种关联用于表示两个模型之间多对多的关系。比如,用户(User)和角色(Role)之间可能存在HABTM关系,用户可以有多个角色,角色也可以被多个用户拥有。在两个模型中添加相同的join表(如`users_roles`): ```ruby ...
创建购物车模型(Cart)和商品模型(Product),定义它们之间的关系,如多对多关系,通过一个关联表记录每个购物车包含的商品及其数量。使用`has_and_belongs_to_many`或`has_many :through`关联来实现这一关系。 ...
”展望了RailsSpace项目的发展方向,提出了可能的改进方案和扩展功能,鼓励读者根据自己的需求对项目进行定制化开发。此外,还会介绍如何继续学习和提高Rails开发技能的方法。 ### 总结 通过构建一个真实的社交...
Rails 2.0加强了ActiveRecord的关联功能,如`has_many`, `belongs_to`, `has_one`等,使得数据关系管理更加便捷。 4. **视图(View)** 视图负责呈现用户界面。Rails 2.0支持ERB(Embedded Ruby)模板,允许开发者在...
3. 模型关联管理:RailsAdmin 支持处理多对一、一对一、多对多等复杂关联关系,可以方便地在管理界面中展示和操作关联数据。 4. 自定义视图:RailsAdmin 允许开发者通过简单的配置,定制列表视图、表单视图以及其他...