首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Ruby on Rails 入門實戰:從安裝到打造線上日記系統

     編輯:Java 相關知識

環境建置

  • Ruby:至 官網 下載安裝包(Windows 建議用 One-Click Installer)。驗證:ruby -e "puts Time.now.strftime('%Y-%m-%d %H:%M:%S')"。
  • Rails:gem install rails --include-dependencies(需聯網)。
  • 資料庫:預設 MySQL,建立 development/test/production 三個資料庫。

Rails 專案初始化與 Scaffold 實戰

rails autoweb
cd autoweb
# 修改 config/database.yml 密碼
ruby script/generate scaffold Record Admin
ruby script/server

瀏覽 https://localhost:3000/admin 即擁有完整 CRUD 介面。

ActiveRecord 機制深度解析

  • 繼承 ActiveRecord::Base,慣例類別名單數對應資料表複數(Record → records)。
  • 欄位自動映射為屬性,無需在類別中重複定義。
  • 可用 set_table_name 覆寫表名,establish_connection 直接在程式碼設定連線。
  • 編碼問題:MySQL 需在連線參數加入 :encoding => "gb2312" 或 utf8 以正確儲存中文。

手工打造線上日記系統

資料表設計

CREATE TABLE records (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  title VARCHAR(50) NOT NULL,
  content MEDIUMTEXT NOT NULL,
  date CHAR(10) NOT NULL,
  UNIQUE KEY (date)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

Model (app/models/record.rb)

class Record < ActiveRecord::Base
  establish_connection(
    :adapter => "mysql", :host => "localhost",
    :username => "root", :password => "password",
    :database => "diary", :encoding => "gb2312"
  )
end

Controller (app/controllers/diary_controller.rb)

  • 繼承 ApplicationController,每個 public 方法對應一個 URL 路徑。
  • 使用 before_filter :configure_charsets 設定 Content-Type: text/html; charset=gb2312 解決中文顯示。
  • 關鍵動作:write(新增/編輯今日日記)、create(儲存)、query(查詢表單)、result(顯示結果)。

View (.rhtml 檔案)

置於 app/views/diary/,混合 HTML 與 Ruby 程式碼(如 <%= start_form_tag :action => 'create' %>、<%= render :partial => 'form' %>)。每個 Controller 動作必須有對應 .rhtml 檔案。

MVC 架構優勢總結

Rails 自動依照目錄結構 (app/models, app/views, app/controllers) 載入元件,零配置實現 MVC,遠勝 Struts 複雜的 XML 設定。ActiveRecord 提供強大的資料映射與關聯描述,配合 Web Services、Action Mailer、Security 等內建模組,讓 Ruby 快速開發強大 Web 應用成為可能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved