`
kmctijoy
  • 浏览: 1970 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

rails 3 的一对一的关联

 
阅读更多

主要将 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教程

    **Rails3**是Ruby on Rails框架的一个重要版本,它对之前的版本进行了大量的改进和优化,使其更加强大和灵活。Rails3的核心设计理念围绕着几个关键的概念,这些概念不仅帮助开发者编写更加简洁高效的代码,还使得...

    rails3-railsconf2010

    Rails 3的发布标志着Ruby on Rails框架的一个重要里程碑,引入了一系列改进和新功能。 ### 关键知识点: #### 1. **Rails 3.0** Rails 3.0是该框架的一个重大版本更新,它对之前版本进行了大量的重构和优化,包括...

    Beginning Rails 3

    - **关联关系**:支持多种关联关系,如一对一、一对多、多对多等,使得数据模型之间的关系更加灵活和易于维护。 #### 五、验证机制 - **数据验证**:Rails 3 提供了丰富的验证机制,可以帮助开发者确保数据的有效性...

    Rails入门教程一(翻译).pdf

    模型部分会涉及ActiveRecord的生命周期,包括创建、读取、更新和删除(CRUD)操作,以及关联(Associations)如一对一、一对多、多对多等,这些关联让数据间的复杂关系得以轻松管理。 此外,教程还会涉及表单...

    Rails 101S

    - **Active Record Associations**:深入探讨Active Record的关联关系管理,如一对一、一对多等关联类型。 #### 总结 《Rails 101S》不仅是一本适合新手入门的教程,也是进阶开发者的好帮手。通过实践这些基础知识...

    Rails 3 in Action

    ### 关于《Rails 3 in Action》 #### 1. Ruby on Rails, the framework - **定义**: Ruby on Rails(简称Rails)是一个基于Ruby语言的Web应用开发框架。... - **定义多对一关联**: 在模型之间建立关联关系。

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    - **定义**:关联是指定义模型之间的关系,如一对一、一对多等。 - **示例**:例如,在博客系统中,一篇文章可以有多个评论,这就是典型的“一对多”关系。 #### 四、查询 - **方法**:使用Active Record的方法来...

    Flex3与Rails结合

    在FlexBuilder的偏好设置中,需添加对`.rb`, `.bat`, `.log`文件类型的关联,以便于编辑Rails相关的脚本和日志文件。 #### 总结 将Flex3与Rails结合,可以创建出功能丰富、视觉效果出色的Web应用。通过以上步骤,...

    rails-1.0.0

    开发者可以定义属性、关联(如一对一、一对多、多对多)、以及验证规则,确保数据的完整性和一致性。 3. **ActionController**:控制器层处理HTTP请求,并将数据传递给视图进行渲染。它也负责调用模型来获取或更新...

    Ruby-MongoModel针对MongoDB的RubyORM框架兼容Rails3

    3. **嵌套文档**:由于MongoDB的数据模型是基于文档的,MongoModel可以方便地处理嵌套文档,允许你在一个模型中包含其他模型实例,无需额外的关联操作。 4. **验证**:MongoModel提供了验证机制,可以确保输入数据...

    Advanced Rails

    "Advanced Rails" 涵盖了Rails开发中的高级主题和技术,是Ruby on Rails学习进阶的重要资源,尤其适合已经对基础Rails有一定了解的开发者。 在Web开发领域,Rails以其高效、简洁的代码和“约定优于配置”的哲学吸引...

    rails查询学习笔记

    在Rails中,数据库查询主要通过ActiveRecord来实现,这是一个强大的ORM(对象关系映射)工具,能够将数据库表与Ruby类关联,简化数据操作。 描述中虽然没有具体信息,但我们可以推测这可能是一篇关于Rails中查询...

    Rails进行敏捷Web开发(所有版本的源码rails3.0-4.0)

    1. Rails 3.0: Rails 3是重大升级,引入了ActionController::Metal,这是一个轻量级的控制器,用于提高性能。同时,它引入了多路由引擎支持,如Rack中间件,使得与其他Web服务器的集成更加容易。此外,ActiveRecord...

    关于Rails中的表关联的程序

    这种关联用于表示两个模型之间多对多的关系。比如,用户(User)和角色(Role)之间可能存在HABTM关系,用户可以有多个角色,角色也可以被多个用户拥有。在两个模型中添加相同的join表(如`users_roles`): ```ruby ...

    rails敏捷开发的购物车系统

    创建购物车模型(Cart)和商品模型(Product),定义它们之间的关系,如多对多关系,通过一个关联表记录每个购物车包含的商品及其数量。使用`has_and_belongs_to_many`或`has_many :through`关联来实现这一关系。 ...

    RailsSpace

    ”展望了RailsSpace项目的发展方向,提出了可能的改进方案和扩展功能,鼓励读者根据自己的需求对项目进行定制化开发。此外,还会介绍如何继续学习和提高Rails开发技能的方法。 ### 总结 通过构建一个真实的社交...

    Rails API 文档

    Rails 2.0加强了ActiveRecord的关联功能,如`has_many`, `belongs_to`, `has_one`等,使得数据关系管理更加便捷。 4. **视图(View)** 视图负责呈现用户界面。Rails 2.0支持ERB(Embedded Ruby)模板,允许开发者在...

    Ruby-RailsAdmin一个Rails引擎提供了一个易于使用的界面来管理您的数据

    3. 模型关联管理:RailsAdmin 支持处理多对一、一对一、多对多等复杂关联关系,可以方便地在管理界面中展示和操作关联数据。 4. 自定义视图:RailsAdmin 允许开发者通过简单的配置,定制列表视图、表单视图以及其他...

Global site tag (gtag.js) - Google Analytics