這里我們將增強我們的Rubyweblog,以使讀者能夠添加評論。在這個過程中,我們將了解如何處理Rails中的模型關(guān)系,因為單個帖子可" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Rails和模型關(guān)系應(yīng)用解析

系統(tǒng) 2374 0
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>
這里我們將增強我們的 Ruby web log ,以使讀者能夠添加評論。在這個過程中,我們將了解如何處理 Rails 中的模型關(guān)系,因為單個帖子可能沒有評論,也可能有多個評論。

準(zhǔn)備工作

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

測試 BlogDemo 項目

  1. 打開 BlogDemo 項目。

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

創(chuàng)建評論模型

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

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

    <shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 268.5pt; HEIGHT: 168.75pt" alt="" type="#_x0000_t75"><imagedata o: src="file:///C:/DOCUME~1/fujiang/LOCALS~1/Temp/msohtml1/01/clip_image001.png"></imagedata></shape>

    Rails和模型關(guān)系應(yīng)用解析

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

    <shape id="_x0000_i1026" style="WIDTH: 453pt; HEIGHT: 79.5pt" alt="" type="#_x0000_t75"><imagedata o: src="file:///C:/DOCUME~1/fujiang/LOCALS~1/Temp/msohtml1/01/clip_image003.png"></imagedata></shape>

    Rails和模型關(guān)系應(yīng)用解析

定義模型關(guān)系

  1. has_many 關(guān)聯(lián)關(guān)系添加到 post.rb
  2. belongs_to 關(guān)聯(lián)關(guān)系添加到 comment.rb

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

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

1. 刪除 blog_controller.rb

  1. 生成 Scaffold 框架 。將 Model Name 設(shè)置為 Post Controller Name 設(shè)置為 Blog

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

新建發(fā)表評論操作

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

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

修改要發(fā)表評論的視圖

  1. 打開 show.rhtml 并在底部添加下列內(nèi)容:

測試

  1. 在瀏覽器中,單擊 Permalinks 之一,查看一個條目的詳細(xì)資料。測試添加評論:
    Rails和模型關(guān)系應(yīng)用解析

顯示評論

我們的博客還未顯示我們所添加的評論,現(xiàn)在我們來修復(fù)此問題。

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

    Comments

    已經(jīng)存在 其放置的位置可供參考

測試

  1. 添加另一個評論:
    Rails和模型關(guān)系應(yīng)用解析

完成的應(yīng)用程序

BlogDemoComments.zip




Rails和模型關(guān)系應(yīng)用解析


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 普兰县| 台安县| 兴安县| 平陆县| 壤塘县| 卓资县| 嘉定区| 扎鲁特旗| 克拉玛依市| 宿松县| 罗山县| 安阳县| 夏邑县| 新巴尔虎右旗| 平定县| 巢湖市| 丰镇市| 邵东县| 龙井市| 天祝| 嘉定区| 叶城县| 汤原县| 漯河市| 永靖县| 仁寿县| 富源县| 萝北县| 岐山县| 黔江区| 西昌市| 波密县| 麻城市| 时尚| 固镇县| 通城县| 桂林市| 博客| 宜宾县| 阿图什市| 外汇|