Rails和模型关系应用解析
来源:互联网 发布:南通java培训 编辑:程序博客网 时间:2024/05/16 13:41
这里我们将增强我们的 Ruby web log,以使读者能够添加评论。在这个过程中,我们将了解如何处理 Rails 中的模型关系,因为单个帖子可能没有评论,也可能有多个评论。准备工作
测试 BlogDemo 项目
创建评论模型
定义模型关系
重新生成我们的控制器框架(scaffolding)
新建发表评论操作
修改要发表评论的视图
测试
显示评论
测试
完成的应用程序
BlogDemoComments.zip
准备工作
我打算从以前的帖子 Rails and Database Migrations 结束的地方开始。另外,您可以在 BlogDemo.zip 的基础上开始本文的操作,此压缩文件包含了那个帖子中完成的项目。
测试 BlogDemo 项目
- 打开 BlogDemo 项目。
- 运行项目并浏览 http://localhost:3000/blog 以验证其是否正常运行。
创建评论模型
1. 切换回 Projects 选项卡,右键单击 Models 文件夹并生成一个名为 Comment 的新模型。
- 打开 003_create_comments.rb 并将 post_id, created_at 和 comment 列添加到上面,方法如下:
- 右键单击 BlogDemo 项目并选择 Migrate Database > To Current Version
定义模型关系
- 将 has_many 关联关系添加到 post.rb:
- 将 belongs_to 关联关系添加到 comment.rb:
重新生成我们的控制器框架(scaffolding)
在我们第一次创建此项目和生成 Post 模型的框架时,我们没有选择覆盖现有的博客控制器,所以没有创建框架操作。这样,我们可以自定义框架操作,我们将删除 blog_controller.rb 并再次生成框架。注意:不要使用覆盖选项,因为已经自定义了视图,而且不希望放弃这些自定义:
1. 删除 blog_controller.rb
- 生成 Scaffold(框架)。将 Model Name 设置为 Post,Controller Name 设置为 Blog。
- 打开最新创建的 blog_controller.rb,它现在拥有所有框架操作(索引、列表、显示、新建、创建、编辑、更新和破坏)。
新建发表评论操作
我们将要修改显示视图,以使其包括可以添加评论的文本区。首先,我们将为发表评论新建一个操作。
- 修改显示操作,以便将帖子 id 保存到 flash:
- 创建下一个 post_comment 操作:
修改要发表评论的视图
- 打开 show.rhtml 并在底部添加下列内容:
测试
- 在浏览器中,单击 Permalinks 之一,查看一个条目的详细资料。测试添加评论:
显示评论
我们的博客还未显示我们所添加的评论,现在我们来修复此问题。
- 将 post_comments 实例变量添加到显示操作,以收集评论:
- 将下列内容添加到 show.rhtml 以显示评论。<hr> 和 <h4>Comments</h4> 已经存在,其放置的位置可供参考:
测试
- 添加另一个评论:
完成的应用程序
BlogDemoComments.zip- Rails和模型关系应用解析
- Rails和模型关系应用解析
- Rails和模型关系应用解析
- Rails和模型关系应用解析
- Rails和模型关系应用解析
- Rails和模型关系应用解析
- Rails和模型关系应用解析
- Rails中嵌套表单的解决:模型关系是一对一和一对多的情况
- 关系模型和关系运算
- 关系模型和关系代数
- 概念模型和关系模型
- Ruby on Rails中的ORM(对象关系模型)一。
- Rails多层关系子模型验证错误在父模型中的处理
- 对象的构成模型和关系模型
- Rails(栈和队列简单应用)
- 概念模型与关系模型和关系规范化
- Ruby on Rails学习笔记(6)--ruby on rails 和mysql数据类型的对应关系
- ROR模型和数据库操作(第六章ruby on rails)
- 23种经典设计模式的java实现_3_桥接模式
- 局部刷新验证码
- JDBC连接SQL Server出现的connection refused问题的解决办法
- 如何在你做的JAVA程序中加音乐
- 编程入门必做题
- Rails和模型关系应用解析
- Array#[start, length]
- 学习ruby 关于Ranges
- 先拷下来,以后再整理JNDI
- 网上摘下的数据库例子
- qForms tips
- sqlserver 2000 安装出错解决办法
- 瑞星将诉卡巴斯基恶意诽谤 悬赏百万征证据
- Array#[inclusive range]