Rails和模型關係應用解析

這裏我們將增強我們的 Ruby web log,以使讀者能夠添加評論。在這個過程中,我們將瞭解如何處理 Rails 中的模型關係,因爲單個帖子可能沒有評論,也可能有多個評論。

準備工作

我打算從以前的帖子 Rails and Database Migrations 結束的地方開始。另外您可以在 BlogDemo.zip 的基礎上開始本文的操作,此壓縮文件包含了那個帖子中完成的項目。

測試 BlogDemo 項目

  1. 打開 BlogDemo 項目。

  2. 運行項目並瀏覽 http://localhost:3000/blog 以驗證其是否正常運行。

創建評論模型

1.      切換回 Projects 選項卡右鍵單擊 Models 文件夾並生成一個名爲 Comment 的新模型。

  1. 打開 003_create_comments.rb 並將 post_id, created_at comment 列添加到上面方法如下

  2. 右鍵單擊 BlogDemo 項目並選擇 Migrate Database > To Current Version

定義模型關係

  1. has_many 關聯關係添加到 post.rb
  2. belongs_to 關聯關係添加到 comment.rb

重新生成我們的控制器框架(scaffolding)

在我們第一次創建此項目和生成 Post 模型的框架我們沒有選擇覆蓋現有的博客控制器所以沒有創建框架操作。這樣,我們可以自定義框架操作,我們將刪除 blog_controller.rb 並再次生成框架。注意:不要使用覆蓋選項,因爲已經自定義了視圖,而且不希望放棄這些自定義:

1.      刪除 blog_controller.rb

  1. 生成 Scaffold框架。將 Model Name 設置爲 PostController Name 設置爲 Blog

  2. 打開最新創建的 blog_controller.rb它現在擁有所有框架操作索引、列表、顯示、新建、創建、編輯、更新和破壞

新建發表評論操作

我們將要修改顯示視圖,以使其包括可以添加評論的文本區。首先,我們將爲發表評論新建一個操作。

  1. 修改顯示操作,以便將帖子 id 保存到 flash
  2. 創建下一個 post_comment 操作:

修改要發表評論的視圖

  1. 打開 show.rhtml 並在底部添加下列內容:

測試

  1. 在瀏覽器中,單擊 Permalinks 之一,查看一個條目的詳細資料。測試添加評論:

顯示評論

我們的博客還未顯示我們所添加的評論,現在我們來修復此問題。

  1. post_comments 實例變量添加到顯示操作,以收集評論:
  2. 將下列內容添加到 show.rhtml 以顯示評論。

    Comments

    已經存在其放置的位置可供參考

測試

  1. 添加另一個評論:

完成的應用程序

BlogDemoComments.zip




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章