Sean's Note: 1月 2018

2018年1月6日 星期六

Ruby on Rails 學習筆記 (一) - 安裝與指令

如何安裝 Ruby on Rails?

1. 安裝 Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. 安裝 RVM(Ruby Version Manager)
\curl -L https://get.rvm.io | bash -s stable
重開 terminal 看 RVM 是否載入成功
rvm | head -n 1

3. 透過 RVM 安裝 Ruby
rvm use ruby --install --default ruby -v

4. 安裝 Rails
gem install rails --no-ri --no-rdoc
Ref: http://installrails.com/

Rails 指令

rails new

範例:新建 rails my app 專案
rails new myApp

rails generate

範例:自動產生 Greetings controller 樣板
rails generate controller Greetings hello
即會自動產生六個檔案:
  1. greetings_controller.rb - 內定義了擁有 hello action 的 GreetingsController 
  2. hello.html.erb
  3. greetings_controller_test.rb
  4. greetings_helper.rb
  5. greetings.coffee
  6. greetings.scss

rails console

範例:操作 rails application
rails console
rails c
  • 常用於直接讀寫資料庫的資料。
  • 可存取 apphelper 實體。

rails dbconsole

範例: 進入 rails application 所使用的資料庫 shell
rails dbconsole
rails db

rails server

範例:啟動 web server
rails server
rails s -b 0.0.0.0

rails runner

範例:執行 Ruby 程式碼
rails runner "Model.long_running_method"

rails destroy

範例:刪除 GreetingsController 樣板(rails generate 的反向操作)
rails destroy controller Greetings

至從 Rails 5.0 開始,rake 的指令集也被直接包進去了:

rails routes

範例: 輸出當前專案的 routes
rails routes
>>         Prefix Verb URI Pattern                Controller#Action
>> greetings_hello GET  /greetings/hello(.:format) greetings#hello

rails generate migration

範例: 建立資料表結構異動的 migration 檔案
rails generate migration add_admin_to_users
rails 便會在 db/migrate 的資料夾下產生像是 20180106022954_add_admin_to_users.rb 的檔案

rails db::migrate

範例: 根據 migration 檔來更新資料表結構與現有資料
rails db::migrate
schema.rb 原本所定義的資料表便會有所更新

更多指令詳見:
Ref: http://guides.rubyonrails.org/command_line.html

如何安裝與更新套件? 

Rails 使用了一套 Bundler 的套件管理工具,可以把它想像成 Node.js 的 npm 或 iOS 的 CocoaPods。只要在 Gemfile 裡增加或修改套件版本時,就可以執行:
bundle instasll
Note: 每次執行完,都要重啟 server。