很高興我來宣佈 Rails4.0.1已經發布。這是一個修復bug的版本,包括了460次的程式碼提交。
這次版本引入的重要改變是Active Record處理子序列的order呼叫。在 Rails 4.0.0 中,當你做下面的操作:
1 |
User.order("name asc").order("created_at desc") |
在生成的SQL查詢語句中,後面的一次order呼叫會放在ORDER BY查詢條件的前面:
1 |
SELECT * FROM users ORDER BY crcreated_at desc, name asc |
在 Rails 4.0.1 中,Rails 3 的特性得到保留,並且生成的SQL排序的語法如下:
1 |
SELECT * FROM users ORDER BY name asc, created_at desc |
我們選擇還原這個特性,是因為在Rails4.0中它的新增一種很重要的不向後相容性,導致想在在不修改程式碼的基礎上很難升級。
另外我們將以前的處理方式作為一個bug,因為這種鏈式的處理次序和其他方法中次序處理不一致。所以我們採用了最保守
方法那就是來還原他的次序來保持一致,從使應用更平滑的升級到Rails4。
對於想使用舊的處理次序的程式設計師來說,可以使用.reorder或者.unscope,來移除ORDER BY排序條件並且生成原來的。
另外,這次釋出的版本帶來了一些效能的改進,可以使Rails4執行更快。
Rail 4.0.0 至今的更改點
檢視每個gem的改動,請閱讀GitHub上的changelogs
- Action Mailer CHANGELOG
- Ation Pack CHANGELOG
- Active Model CHANGELOG
- Active Record CHANGELOG
- Active Support CHANGELOG
- Railties CHANGELOG
完整的列表
為了檢視完整的更改列表,檢出所有在github上的提交。
SHA-1
如果你要驗證下載的gem和我上傳的是否一致,請使用下面的SHA-1值
- 6f2e4d74b34904b61a47187dd879dca3b26fc2d8 actionmailer-4.0.1.gem
- 063f16cfcf62f766a893fe09e35241bdae7cd70e actionpack-4.0.1.gem
- b50a071bd924fb27e4c41bb40c9cb483457bc21c activemodel-4.0.1.gem
- 1a8b173da2d8e2ae27edfeb99164c2574a1d7ddd activerecord-4.0.1.gem
- 9a58bc3c086628ef8028716eeb7c0cb0f8c7e39a activesupport-4.0.1.gem
- 4663f4d0607ff59cf0ae5a55b268d27d658fdcc8 rails-4.0.1.gem
- 22e23959dc14101697eb2bb8acc00a81cc6c3884 railties-4.0.1.gem
我要感謝每位幫助過這次版本釋出的貢獻者。