在 Ruby on Rails 中,Gem
是一種打包好的程式碼,可以輕鬆地加到 Rails 應用程式中,以實現各種功能。 Gem 可以包含任何東西,從用於處理圖像的庫到處理資料庫操作的工具,也可以用來擴展或修改 Ruby 應用程式的功能,簡單來說就是由無私的開發者貢獻程式碼並且打包成好用的套件
,讓開發更有效率!
所有的 Gem 相關資訊都可以到RubyGems裡面找到!
安裝套件只要 gem install 指令加上套件的名字,敲完按下 Enter 鍵,就自動會從網路下載套件、安裝套件,一段指令即可完成,相當簡單
至於怎麼使用套件,重點中的重點就是看文件
,使用前可以先到套件的 GitHub上 看README.md
的說明,基本上按照說明的步驟走就能略知一二,然後就要看怎麼應用到你的專案上
那就用dotenv
套件來介紹吧! 先簡單說明一下這個套件的用途!在開發web 應用程式時,經常需要儲存一些敏感資訊,例如 API 金鑰、資料庫密碼或其他機密設置等等,為了保護這些資訊,我們可以使用 dotenv-rails 這個 Ruby 套件,將它們隱藏在環境變數
中,防止它們被不慎洩露!
在 Rails 的 Gemfile 中加入以下,這邊會放在開發環境是因為這個只有在開發環境才會用到
gem 'dotenv-rails', groups: [:development, :test]
$ bundle install
dotenv-rails 使用一個名為.env的檔案來儲存環境變數
$ touch .env
.env 裡面大概會長得像這樣:
# Google
GOOGLE_CLIENT_ID = your_google_client_id
GOOGLE_CLIENT_SECRET = your_google_client_secret
# Mailgun
MAIL_PORT = your_mail_port
MAIL_USER_NAME = your_mail_user
MAIL_PASSWORD = your_mail_password
# AWS S3
AWS_ACCESS_KEY_ID = access_key_id
AWS_SECRET_ACCESS_KEY = secret_access_key
請將.env檔案加入到.gitignore檔案裡
很重要!!!要避免進入版控,一但進去版控等於把金鑰拱手讓人!
註: .gitignore
檔案就跟字面上一樣 git ignore 所以裡面的東西都會被忽視所以不會進入版控裡
以 Google 登入來說會長得像下方這樣:
config.omniauth :google_oauth2, ENV["GOOGLE_CLIENT_ID"], ENV["GOOGLE_CLIENT_SECRET"],{}
先前的文章都有提到 Ruby on Rails 的優點之一就是 慣例優於設定
,一般團隊專案開發會建立一個類似.env.sample
這個檔案讓團隊成員知道有哪些金鑰,跟他們的環境變數名稱而.env檔案會放入真的的金鑰如下:
這邊會告知隊友們金鑰的擺放位置,只要複製貼上換上真正的金鑰即可
# Google
GOOGLE_CLIENT_ID = your_google_client_id
GOOGLE_CLIENT_SECRET = your_google_client_secret
真正的金鑰會類似下方這樣很長一串亂碼,這邊當然是我亂打的來當示範: )
# Google
GOOGLE_CLIENT_ID = 50aq88uv83812aauuuuuu2499929933393bbcid
GOOGLE_CLIENT_SECRET = uv83813240340234230420342aa1139slewf
使用 Gem 套件,就是要讓開發更有效率
可以簡單收集一些實用的套件讓你的專案開發一氣呵成,減少不必要的時間,增加開發的效率!
明天預計來介紹 API ,我們明天見!