Rails利用Module整理Model
在Rails當中有許多refactor model的邏輯和方法,本篇要說明要如何利用module整理model。 1. 情境:每個model都需要使用同一個method 例如今天人力資源部門的資料庫,有engineer、salesperson共兩個table,我們要計算每一個部門的平均薪資,因此先撰寫以下的method: class Engineer < ActiveRecord::Base def self.average_pay result = 0 all.map {|person| result = result + person[:pay] } result / all.length end end 用這樣的方法,就可以利用Engineer.average_pay算出整個部門的平均薪資。其他部門也照本宣科。 2. 撰寫module,簡化重複的方法 雖然這樣看起來很ok,但假如整個人力資源的資料庫有20個model都要這樣算呢?這樣完全不符合Rails的DRY原則,要是計算方式有改動,就要改