Hello, 我是 Weber,一位工程師,斜槓鼓手與行銷顧問。
Rails 開發,每日一套件第 8 天,跟著我一起走完這段旅程,建立出自己的常用套件庫吧!
讓我們循序漸進,輕鬆認識 Rails 開發好用的 30 個套件。
Bullet,一個名字聽起來意味不明的套件,卻有著相當重要的功能。監看你的開發 queries 並且提醒你是否有 N + 1 的問題,要用 eager loading 了,以及是不是使用了不必要的 eager loading 而可以用 counter cache。
這邊就懶得囉說 N+1 是什麼了,如果你不知道 N+1 那其實也不用裝這個了吧。
要怎麼使用呢?
老招 bundle add
先,愛用 bundle add
的原因。
就是可以少打一個 bundle install
,救救肌腱炎,人人有責。
bundle add bullet
gem 記得丟到 group dev, test 裡,接著輸入:
bundle exec rails g bullet:install
應該會出現一段話
問你 test 環境裡要不要使用,y。
之後在 environments/development.rb 跟 test.rb 裡,就會寫入預設的 config。
config 的設定可以客製化微調,沒有很難,讀文件吧。
development.rb
config.after_initialize do
Bullet.enable = true
Bullet.alert = true
Bullet.bullet_logger = true
Bullet.console = true
Bullet.rails_logger = true
Bullet.add_footer = true
end
test.rb
config.after_initialize do
Bullet.enable = true
Bullet.bullet_logger = true
Bullet.raise = true # raise an error if n+1 query occurs
end
然後呢~?然後就完成了!
要怎麼測試呢?直接 rails s
或 bin/dev
進去看
如果有監測到,就會直接一個彈跳視窗出來,然後同時左下角也會有通知顯示
同時也會顯示在瀏覽器 console 內,如下圖:
跳窗:
左下 footer:
console:
你就知道該幹嘛了!快去修吧!
簡單、好用,必收套件收起來。
我們明天見!