在 rails 當中,可以自訂一些好用方便的檔案,在適當的時機來使用。
method
在 lib/require/object.rb
,可以自行新增 class
or
lib/core_ext/object/object.rb
lib/core_ext/hash/hash.rb
1 2 3 4 5 6 7 8 |
|
require
但要記得要在使用的檔案,先 require 才能夠使用
也可以直接在 config/initializer
新增 require.rb
檔案,將檔案 require 進來,就不用每個檔案上面都 require 了。
initializer
裡面的檔案,程式一執行就會全部都執行了
require
config/initializers/monkey_patches.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
使用
1 2 3 4 5 |
|
Refinement
「猴子補丁 (Monkey Patching)」的手法,有些人覺得很不嚴謹
Ruby 2.0 之後推出 Refinement 的設計,可以稍微控制一下 Open Class 影響範圍。
原本
1 2 3 4 5 |
|
Refinement
1 2 3 4 5 6 7 |
|
變成必須先 using MyHelloString
1 2 3 |
|
參考文件:
Ruby 語法放大鏡之「為什麼 2.days.ago 在內建的 irb 會找不到這個方法? 這不是 Ruby 語法嗎?」