0

我是RoR的新手,正在使用現有的Rails 2應用程序。該應用報告了很多指標,我需要添加一個新指標,這是其他兩個指標的比率。我想了解「正確的」Rails做這種事情的方式。但我也希望儘快完成,並且對代碼的其他部分風險最小。我想將現有指標的報告,彙總,圖表和彙總邏輯擴展到新的計算字段,而不必以稍微不同的方式重新實施所有內容。在RoR 2中爲AR模型添加一個計算的字段

  1. 我可以添加一個字段到數據庫並安裝觸發器過程來維護它。這具有將工作推送到數據庫中的優勢,並且允許我在必要時對字段進行索引,但是它會消耗數據庫中的另一個字段,而且我認爲此刻我並不需要在該字段上真正需要索引。 AR遷移將是什麼樣子?

  2. 我可以創建一個計算字段的視圖。如何切換模型以使用具有新字段的新視圖而不中斷其餘代碼? AR遷移是什麼樣的?

  3. 我可以將新字段添加到查詢中... SELECT my_table。*,a/b AS ab_ratio FROM my_table ...這是否意味着我需要檢查該特定模型上的所有.find調用,改變那些?有沒有更好的方法來做到這一點?

這將是非常有用的,有一些代碼的例子,這種事情是如何實現和/或記錄。

回答

2

我建議使用的模型事件來計算綜合值,並保持任何業務邏輯/觸發了數據庫:

class MyRecord < ActiveRecord::Base 
    before_save :update_ratio 

private 
    def update_ratio 
    self.ratio = self.a/self.b 
    end 
end 
相關問題