跳至主要内容

2 篇文章 含有標籤「Ruby on Rails」

檢視所有標籤

Ruby 語言介紹與入門教學筆記 | 學習筆記

· 閱讀時間約 4 分鐘
kdchang

前言

Ruby 是一種純物件導向、動態型別且語法極為直覺易讀的程式語言,由日本程式設計師「松本行弘(Yukihiro Matsumoto)」於 1995 年開發推出。Ruby 的開發理念是讓程式設計變得「快樂」,它重視人類可讀性多於機器效率,因此語法貼近自然語言、少有繁複標點,受到許多開發者的喜愛。

Ruby 最廣為人知的應用即是 Web 框架 Ruby on Rails,但 Ruby 本身也可應用於腳本撰寫、自動化流程、系統工具與 API 開發。


重點摘要

  • 語言特色:

    • 純物件導向:數字、字串、布林值等皆為物件。
    • 語法簡潔:接近自然語言,易於閱讀與維護。
    • 動態語言:變數無需預先定義型別。
    • 彈性高:支援 metaprogramming、區塊、lambda。
    • 龐大標準函式庫與活躍社群(Gem 套件系統)。
  • 應用領域:

    • Web 開發(搭配 Rails 或 Sinatra)
    • 系統腳本與自動化任務
    • 命令列工具(如 Jekyll、CocoaPods)
    • 測試工具(RSpec、Cucumber)
  • 安裝方式:

    • 建議使用 rbenvRVM 管理版本。
    • 檢查版本:ruby -v
    • 執行程式碼:ruby 檔名.rbirb(互動環境)

語法入門實例

以下是一些 Ruby 基本語法與應用的實際範例,幫助理解語言結構與特性。


1. Hello World

puts "Hello, world!"

使用 puts 印出字串到終端機。無需加分號,換行即表示語句結束。


2. 變數與資料型別

name = "Alice"
age = 30
pi = 3.14
is_admin = true

Ruby 不需宣告型別,會根據賦值自動推斷。


3. 字串操作

greeting = "Hello"
name = "Bob"

puts "#{greeting}, #{name}!" # 字串插值
puts greeting.upcase # => "HELLO"
puts name.reverse # => "boB"

Ruby 字串是物件,具有許多內建方法如 .upcase.reverse


4. 陣列與雜湊(Hash)

arr = [1, 2, 3]
arr << 4 # 加入元素
puts arr[2] # => 3

person = { name: "Tom", age: 25 }
puts person[:name] # => "Tom"

陣列可任意擴充,雜湊(Hash)類似於 JavaScript 的物件或 Python 的字典。


5. 控制流程

score = 85

if score >= 90
puts "優等"
elsif score >= 60
puts "及格"
else
puts "不及格"
end

條件式使用 ifelsifelse,並以 end 結尾。邏輯清楚、語法簡潔。


6. 迴圈與區塊

(1..5).each do |i|
puts "第 #{i} 次"
end

(1..5) 表示範圍,.each 是集合的遍歷方法,do ... end 是 Ruby 的區塊(block)。


7. 方法定義

def greet(name)
"Hello, #{name}"
end

puts greet("Ruby")

方法以 def 開頭,end 結尾,回傳值可省略 return,預設回傳最後一行的值。


8. 類別與物件導向

class Person
attr_accessor :name

def initialize(name)
@name = name
end

def greet
"Hi, I'm #{@name}"
end
end

p = Person.new("Alice")
puts p.greet # => Hi, I'm Alice

Ruby 是純物件導向語言,每個資料皆為物件。類別可包含建構子 initialize 與方法,使用 @變數 表示實例變數。


9. 條件表達式簡寫

puts "你已成年" if age >= 18

Ruby 支援簡化語法,條件可以寫在語句之後,提高可讀性。


10. 匿名函式與 Lambda

double = ->(x) { x * 2 }
puts double.call(5) # => 10

Lambda 是匿名函式,可用 ->lambda 定義,用 .call 呼叫。


Ruby 工具與社群資源

  • Gem 套件系統gem install 套件名,安裝第三方函式庫。

  • irb:互動式 Ruby shell,適合練習語法。

  • RDoc:內建文件系統。

  • 社群網站


總結

Ruby 是一門設計優雅、語法簡潔、表達力強的程式語言,特別適合用於快速開發、腳本處理與 Web 應用。其強大的物件導向特性與彈性語法,讓程式設計不僅實用,更具美感。

如果你是第一次接觸和學習程式語言,Ruby 是一個相當友善的選擇。如果你是經驗豐富的開發者,也能從 Ruby 中找到清晰表達與高層次抽象的樂趣。

Ruby on Rails 介紹與入門教學筆記 | 學習筆記

· 閱讀時間約 4 分鐘
kdchang

前言

Ruby on Rails(簡稱 Rails) 是一套以 Ruby 語言 為基礎所打造的全端開發框架,自 2004 年問世以來,因其「約定大於配置(Convention over Configuration)」與「不重複自己(Don't Repeat Yourself, DRY)」的設計理念,成為 Web 開發世界中極具代表性的框架之一。

Rails 強調快速開發與清晰結構,幫助開發者迅速建構可維護的應用程式,適合用於新創產品、MVP 原型開發,以及後台管理系統等場景。


重點摘要

  • 核心概念:

    • 基於 MVC 架構(Model-View-Controller)
    • 使用 Ruby 作為程式語言,語法簡潔易讀
    • 提供大量自動化工具,減少樣板程式碼
  • 主要特色:

    • Active Record:物件關聯對應(ORM)層,方便操作資料庫
    • Action View:視圖模板系統,支援 HTML + ERB(嵌入式 Ruby)
    • Action Controller:處理使用者請求、導引邏輯
    • 內建資源路由、RESTful 設計、自動產生 CRUD 操作
    • 支援開發環境分離(開發、測試、正式)
  • 優點:

    • 建立專案與開發速度快
    • 有完整且穩定的生態系與套件系統(gem)
    • 測試工具完善,支援 TDD/BDD 開發流程
    • 社群活躍,有大量教學資源
  • 缺點:

    • 在高並發、高效能要求場景可能需額外優化
    • 有一定的學習曲線,尤其對 Ruby 不熟悉的開發者

建立第一個 Rails 專案

1. 安裝 Rails

首先需安裝 Ruby 環境,建議搭配 rbenvRVM 工具管理 Ruby 版本。安裝 Ruby 後,安裝 Rails:

gem install rails

確認版本:

rails -v

2. 建立新專案

rails new blog
cd blog

rails new 指令會建立一個完整的 Rails 專案結構,包含資料夾、設定檔、樣板程式碼等。


3. 建立資料表與模型

Rails 提供 scaffold 產生器,可以一次建立 Model、Controller、View、路由與測試程式:

rails generate scaffold Post title:string body:text

這個指令會建立 posts 資源的 MVC 元件,其中 title 是字串、body 是文字欄位。

接著執行資料庫遷移:

rails db:migrate

這會根據 db/migrate 產生的檔案,建立對應的資料表。


4. 啟動伺服器並測試

rails server

開啟瀏覽器進入:

http://localhost:3000/posts

你會看到一個基本的 CRUD 界面,可以建立、查看、修改與刪除文章。這是 Rails scaffold 的成果。


MVC 架構簡介

Rails 採用 MVC 模式組織應用程式:

  • Model(模型):對應資料表與商業邏輯,使用 ActiveRecord
  • View(視圖):負責呈現 HTML 頁面,支援 ERB、HAML 等模板引擎
  • Controller(控制器):負責接收請求、操作模型、回傳視圖

範例:

# app/models/post.rb
class Post < ApplicationRecord
end

# app/controllers/posts_controller.rb
class PostsController < ApplicationController
def index
@posts = Post.all
end
end

# app/views/posts/index.html.erb
<h1>文章列表</h1>
<% @posts.each do |post| %>
<p><%= post.title %></p>
<% end %>

路由與 RESTful 設計

Rails 使用 config/routes.rb 設定路由。若使用 resources :posts,Rails 會自動產生如下 RESTful 路由:

HTTP 動作路徑控制器動作說明
GET/postsindex查看所有文章
GET/posts/:idshow查看單一文章
GET/posts/newnew顯示新增頁面
POST/postscreate建立文章
GET/posts/:id/editedit顯示編輯頁面
PATCH/posts/:idupdate更新文章
DELETE/posts/:iddestroy刪除文章

常用開發指令與功能

  • 建立模型:rails generate model Comment body:text
  • 建立控制器:rails generate controller Comments
  • 執行測試:rails test
  • 啟動主控台:rails console
  • 進行資料遷移:rails db:migrate

實用工具與套件(Gem)

Rails 依賴大量 gem 套件,以下是常見幾個:

功能套件名稱說明
認證登入Devise最常用的使用者認證套件
上傳檔案CarrierWave支援圖片與檔案上傳
表單處理SimpleForm增強表單設計
管理後台ActiveAdmin快速生成後台管理介面
部署工具Capistrano遠端部署自動化

結語

Ruby on Rails 是一套穩定、完整、且易於上手的全端 Web 框架。它的「約定優於配置」設計理念,讓開發者可以專注在商業邏輯與產品功能,減少重複工作。

雖然使用人數成長趨緩,但在快速開發、MVP、管理後台系統等領域仍非常實用。如果你正在尋找一套能夠快速上線且易於維護的全端框架,Rails 仍是非常值得考慮的選擇(前提是對於 Ruby 不排斥)。