ruby博客系統開發-----NetBeans篇

     以前用過ASP,asp.net,PHP,Python開發的博客系統,對於ruby很陌生,ruby語言不是很流行,畢竟ruby語言是日本人發明的,也許更好用。固然要實踐以後才知道。我查閱了圖書館有關ruby的書籍與源代碼,試着練習一下,下面是個人開發心得。 html

     ruby開發要求 mysql

一個數據庫服務器 web

支持 Ruby 的 NetBeans IDE 8.1,目前最新版本,固然使用visual studio,MyEclipse也能夠開發ruby程序。這裏介紹NetBeans。 sql

建立示例數據庫 數據庫

注意:本教程使用 MySQL 數據庫服務器。有關在 Ruby 應用程序中有使用MySQL 數據庫服務器的信息,請參閱安裝和配置 Ruby 支持。本文檔中一樣包括如何使用 Java DB 數據庫服務器的技巧。 瀏覽器

建立 Ruby on Rails 項目以前,首先須要先建立一個 rubyweblog_development 數據庫。步驟以下: ruby

打開一個命令窗口。 服務器

啓動 MySQL 數據庫服務器,若是它尚未啓動。 app

輸入如下命令建立 rubyweblog_development 數據庫,而後單擊回車鍵。
mysqladmin -u root -p create rubyweblog_development
注意: 若是根用戶未設置口令,則省略 -p 參數。
框架

建立 Ruby on Rails 項目

首先,建立一個 Ruby on Rails 項目。默認狀況下,Ruby on Rails 應用程序將建立在符合項目約定的目錄結構中。

NetBeans IDE 中,選擇 File > New Project。

在 Categories 欄中選擇 Ruby ,在 Projects 欄中選擇 Ruby on Rails Application。單擊 Next 按鈕。

注意:首次在 IDE 中建立 Ruby 項目時,IDE 會檢查系統中是否還安裝了其餘 Ruby 軟件(除了 IDE 隨帶的 JRuby 軟件以外)。若是有,IDE 會彈出一個對話框,詢問您選擇使用哪個軟件。若是要使用 IDE 隨帶的 JRuby 解釋器,就選擇 JRuby,反之,選擇安裝的 Ruby。有關更多信息,請參閱安裝和配置 Ruby 教程中的 Configuring the IDE to Use Your Own Ruby Installation 一節。

在 Project Name 欄中輸入 RubyWebLog 。接受全部其餘默認設置。

單擊 Finish 按鈕,這樣便建立了一個新項目。

IDE 將建立一個項目目錄,名稱與你的項目名稱相同。您將看到:

Projects 窗口包含應用程序的基本類別。須要特別關注的是 Controllers、Models 和 Views 節點。在本教程中,咱們將遵循基本流程建立模型、添加控制器並生成視窗。

Output 窗口將列出應用程序的文件列表。你能夠單擊 Output 窗口中的連接在編輯區域打開該文件。

配置數據庫環境

接下來的步驟是編輯 database.yml 文件,該文件已經配置使用 MySQL 適配器和 development 數據庫。你無需進行任何配置,除非設置了根用戶口令。

打開 Configuration > database.yml

編輯 database.yml 文件,在 development 配置中添加 口令。

保存並關閉 database.yml 文件。

特別注意: 若是操做系統的主文件中未包含 localhost,則使用 127.0.0.1 代替。另外還需注意,在一些系統中,應使用小寫字母進行數據庫設置。

建立模型

在本節中,你將利用 Rails Generator 建立應用程序的模型。Ruby 博客應用程序須要使用 Post 模型存儲博客文章的實例。

在 Projects 窗口中,右鍵單擊 Models 節點,而後選擇 Generate。

在 Rails Generator 對話框的 Arguments 欄中輸入 Post,而後單擊 OK 按鈕。

Rails Generator 將建立一個名爲 Post 的模型。Output 窗口將列出該操做建立的文件:

app/models/post.rb。該文件包含 Post 模型的方法。該文件還將在編輯域中打開。

test/unit/post_test.rb。 檢驗 Post 模型的測試單元。

test/fixtures/posts.yml。安裝模型的固定測試文件。

db/migrate/migrate/001_create_posts.rb。定義數據庫初始結構的遷移文件。

遷移數據庫

接下來,咱們須要修改遷移文件 001_create_posts.rb。首先添加信息配置數據庫。

在 Output 窗口中,單擊 001_create_posts.rb 文件的連接。

打開該文件,能夠看到一個 self.up 方法(用於建立 posts 表)和一個 self.down 方法(用於釋放 posts 表)。

將標題欄(如下代碼的 黑體部分)添加到 self.up 方法的 create_table 中,以下圖所示:

代碼示例 1: 001_create_posts.rb 的代碼
class
CreatePosts < ActiveRecord::Migration
  def self.up
   create_table :posts do |t|

t.column "title", :string
   end
  end
  def self.down
   drop_table :posts
  end
end

在主菜單中,選擇 File > Save All。

在 Projects 窗口中,右鍵單擊 RubyWebLog 節點,而後選擇 Migrate Database > To Current Version。

該操做將更新數據庫,使數據庫中含有 posts 表。Output 窗口將顯示遷移什麼時候完成。

建立一個控制器

接下來,使用 Rails Generator 建立一個控制器與 Post 模型交互。在本教程中,咱們添加了支架(Scaffolding)代碼,可提供一個 CRUD 界面用於在博客中建立、讀取、更新和刪除條目。

在 Projects 窗口中,右鍵單擊 Controllers 節點,選擇 Generate。

在 Rails Generator 對話框的 Name 欄中輸入 Blog,置空 Views 欄,單擊 OK 按鈕。

這樣將建立一個 blog_controller.rb 文件,並在編輯域中打開該文件。這時,Projects 窗口的 Controllers 節點中就添加了一個 blog_controller.rb 節點。

編輯 blog_controller.rb,在其中添加如下 scaffolding 代碼。此代碼將爲 Post 模型提供一個簡單的 CRUD 應用程序。

代碼示例 2: blog_controller.rb 的代碼
class
BlogController <
ApplicationController
scaffold :post
end


運行應用程序

接下來,測試應用程序。

在 Configuration 節點中,打開 routes.rb。找到下面這行代碼:

# map.connect '', :controller => "welcome"

刪除註釋標記(#),將 welcome 修改成 blog。

展開 Public 節點,右鍵單擊 index.html,而後選擇 Delete。

index.html 將默認顯示 Welcome 頁面,而這並非你想要的。經過刪除 index.html, Rails 將在 routes.rb 中尋找須要顯示的頁面。在前面的步驟中,咱們已經將 welcome 頁面已經修改成 blog。

選擇 File > Save All。

單擊工具欄中的 Run Main Project 按鈕。

該操做將啓動 WEBrick 服務器,它是 Ruby on Rails 框架的一部分。同時將啓動 web 瀏覽器。下圖是該應用程序的初始頁面。

圖 1: RubyWebLog 主頁

單擊 New 按鈕。

圖 2: 建立新日誌

輸入一個標題,而後單擊 Create 按鈕。

下圖就是建立博客日誌的一個例子。

圖 3: 成功建立博客日誌

更多功能:再添加一個字段

此處,咱們將再添加一個字段(除了Title字段以外),從而使 posts 表包含一個 Body 欄,用於提供博客的正文內容。建立字段的步驟如今應該很熟練了。

右鍵單擊 Database Migrations 節點,選擇 Generate。 在 Rails Generator 對話框的 Arguments 欄中輸入 AddBody,而後單擊 OK 按鈕。

IDE 將建立一個遷移腳本版本文件 002_add_body.rb,並在編輯域中打開該文件。

對 002_add_body.rb 做以下修改:

代碼示例 3: 002_add_body.rb 的代碼
class AddBody < ActiveRecord::Migration
  def self.up
add_column 'posts', 'body', :text
  end
  def self.down
remove_column 'posts', :body
  end
end

若是您再次返回遷移腳本,這個遷移腳本將會把正文欄添加到 posts 表中,而後又將它刪除。

選擇 File > Save All。

右鍵單擊 RubyWebLog 節點,選擇 Migrate Database > To Current Version。

返回瀏覽器,單擊 New Post 連接,看 Ruby 如何識別新的正文字段。

圖 4:含有正文字段的新日誌


再建立一些博客條目。例如:

圖 5: 更多博客日誌

更多功能:使列表看起來更像是一個博客

用於 BlogController 中的 scaffold 方法建立出一個基本的 CRUD 應用程序,使您可以輕鬆地對 Post 模型進行測試。如今,您利用 scaffold 方法生成一樣的視窗,這樣一來,用戶界面能夠由您來進行個性化定製。

在 Projects 窗口中,右鍵單擊 Views 節點,而後選擇 Generate。

在 Rails Generator 對話框中,從 Generate 下拉菜單中選擇 scaffold。

在 Model Name 欄中輸入 Post,在 Controller Name 欄中輸入 Blog 。將 Actions 欄置空。選擇 Overwrite,強制 BlogController 從新生成,而後單擊 OK 按鈕。

IDE 會爲 Post 模型建立一個視窗,並在 Output 窗口中列出內容。

展開 Views > blog,並打開 list.rhtml,該文件用以顯示博客條目的列表。 刪除 <h1> 和 <table> 標記,並將其替換爲下列代碼:

代碼示例 4: list.rhtml 代碼
<h1>The Ruby Blog</h1>
<% @posts.each do |post| %>
  <h2><%= post.title %></h2>
  <p><%= post.body %></p>
  <small> <%= link_to 'Permalink', :action => 'show', :id =>
post%></small>
  <hr>
<% end %>

此代碼將爲每一個 post 操做實例都生成一個標題、正文和 Permalink,如圖 6所示。

選擇 File > Save All ,而後刷新瀏覽器,查看 Post 模型的新界面。

圖 6: 新的、改進的模型界面

想要首先顯示最新的條目,就須要經過在 @posts in list.rhtml 的末尾添加 .reverse 來反轉排序次序:

<% @posts.reverse.each do |post| %>

保存文件並刷新瀏覽器,博客程序將顯示以下內容:

圖 7: 反序顯示博客日誌

end,較之PHP開發博客系統差很少,但方便一些。

相關文章
相關標籤/搜索