在許多情況下,例如處理 JSON 格式的 API 回應、處理網站上嵌入的 JavaScript 資源等時,我們會頻繁看到 13 位長數字,並且我們可能知道它是源自new Date().getTime()
等程式碼的紀元時間戳,但是,作為人類,我們無法快速分辨出它代表的日期和時間。有一個名為 Epoch Converter 的便捷網站,可以輕鬆地將其轉換為人類可讀的格式,但對於開發人員來說,大多數時候還有比打開網站更快捷的方法,即使用許多程式語言自帶的「互動式 shell」。
Ruby 3.0 帶來了一些重大變化,這會為使用大量 gem 的典型 rails 應用程式帶來很多麻煩,尤其是關鍵字參數行為的重大變化和 URI.escape
方法的刪除。
將以 API 為中心的應用程式的 rails 版本從 5.2
升級到 6.0
時要處理的主要事情包括配置調整和修復棄用警告。
在撰寫本文時,Ruby v2.7.6
是 v3.0
之前的最新版本,如果應用程式使用依賴 BigDecimal
的庫,升級到 v2.7.6
可能會遇到重大問題。
有沒有想過 Ruby 的 defined?
在哪裡定義?因為它看起來很像一種方法,所以您最終可能會嘗試檢查許多地方,例如:“Object”、“Kernel”、“BasicObject”,甚至“Class”或“Module”,但卻無法在任何這些地方找到它。好吧,直到你意識到這一點,答案才很簡單:defined?
不是一種方法,而是一個運算符或一個關鍵字。
使用名為 activerecord-import 的 gem,將大量記錄匯入 mysql 表變得更容易,這篇文章示範如何實現它。
將應用程式 rails 版本從 5.0
升級到 5.1
比從 4.2 升級到 5.0](/upgrade-rails-from-4-2-to-5.0) 更容易,因為這只是一個小版本更新。然而,可能仍有許多問題需要解決,無論是由於框架變化還是由於過時的 gems 依賴性。
RSpec 是 ruby 中流行的測試框架。
Rails 框架會自動載入常數,以便在「開發」或「測試」等環境中,應用程式不需要在處理請求之前將所有內容載入到記憶體中。然而,眾所周知,自動載入在 rails 中是線程不安全的(至少對於低於 6 的版本而言),如果你碰巧使用了像 puma
或 webrick
這樣的線程伺服器,那麼很容易踩到由多線程引起的意外問題。
將 rails 升級到新的主要版本可能會比較棘手,因為框架本身可能會發生許多重大變化,或者專案中使用的許多 gem 可能會被棄用或不再受支援。然而,如果按照正確的程序進行,一切也會很順利。這篇文章根據我最近的實際經驗分享了將我們的 API 伺服器從 4.2.11
升級到 5.0.7.2
的過程。請注意,根據專案配置或依賴關係,不同專案的升級步驟可能略有不同。
帶有 cookie 的 Ruby http 請求。
Ruby parallel gem 用例。
Rack 是 ruby 世界中提供 web 框架 (ruby on rails
, sinatra
) 和 web 伺服器 (webrick
, puma
, unicorn
) 之間介面的 gem。
Bundler 用於 ruby 專案中的依賴管理。
Ruby gem
是一個包含可重複使用的 ruby 應用程式或函式庫的軟體包。
rbenv 用於管理多個 Ruby 版本,這裡總結了一些常用的命令,以供快速參考。
學習 Ruby 的一些基礎知識。