Type something to search...

Blog Posts

在 MySQL 5.6 使用 GROUP BY 的筆記
在 MySQL 5.6 使用 GROUP BY 的筆記

在 MySQL 5.6,如果使用了 GROUP BY A 欄位,但是 SELECT 的 **B 欄位,沒有加上 aggregate function,且群組裡 row 彼此間 B 欄位 **的值並不相同,則會以 nondeterministic 的方式決定要取出 **B 欄位 **的值。 可參考文件:[https://dev.mysql.com/doc/refman/5.6/en

read more
如何使用 batch-loader gem 避免 N+1 Query
如何使用 batch-loader gem 避免 N+1 Query

我一開始看 batch-loader 在 github 上的說明,一直看不懂到底該怎麼用,所以這邊紀錄一下它的用法。 這是一個基本的使用方式,可以從 accounts 從 DB 拿出對應的 users: def user_lazy(account) BatchLoader.for

read more
如何在 debug test case 時印出 DB 的 log
如何在 debug test case 時印出 DB 的 log

有時候會想利用 test case 去追蹤一些操作 DB 的行為。 像是會放 binding.pry 在要觀察的程式附近,接著只要用 ActiveRecord::Base.logger = ActiveSupport::Logger.new(STDOUT)就可以把操作 DB 的 log 印到 terminal 的畫面了。

read more
如何無痛跑 rake task
如何無痛跑 rake task

用 Rails console 開 sandbox 模式 $ rails c -s先載入環境就可以跑了 > Rails.application.load_tasks > Rake::Task['some_namespace:some_task_name'].invoke由於對 DB 的操作之後都會 rollback,所以可以拿來測試 rake

read more
Vim 的 tab 設定
Vim 的 tab 設定

expandtab :在 insert mode 時,輸入 tab 時,改為輸入 space softtabstop :在 insert mode 時,按下 tab 鍵會跑出幾個 space tabstop :tab 的寬度為幾個 space shiftwidth :縮排的寬度為幾個 space實驗 softtabstop 跟 tabstop 先關閉 `e

read more
MySQL 你到底是在鎖屁喔
MySQL 你到底是在鎖屁喔

剛剛在研究這個簡單的範例: CREATE TABLE `posts` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `content` varchar(255) DEFAULT NULL, `user_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `index_posts_on

read more
在 Rails 5.1 之後,使用 pluck 不保證會 DB query
在 Rails 5.1 之後,使用 pluck 不保證會 DB query

在 Rails 5.1 之後,因為這個 commit,為 pluck 的行為帶來的一點變動。 因為習慣在 Rails 4.2 開發,養成了一個直覺是使用 pluck 就是會 DB query。但是就在換

read more
其實你可以不用 cherry-pick
其實你可以不用 cherry-pick

如果今天有三支 branch:master、staging、feature/b。本來你在開發中的 feature/b 是從 staging 長出來的分支,但是現在你必須將 feature/b 的內容轉移到 master 上,如圖,你會怎麼做呢? 從

read more
ArgumentError: invalid byte sequence in UTF-8
ArgumentError: invalid byte sequence in UTF-8

有次遇到這個錯誤:ArgumentError: invalid byte sequence in UTF-8,一追之下發現是遇到類似這段程式碼, "english 中文\xED\xB6\xB0".gsub(/english/, '')會錯的原因是因為 \xED\xB6\xB0 不是合法的 UTF-8 編碼。 要檢查是不是合法的編碼可以用 `valid_encod

read more