簡體   English   中英

在RoR 2中將計算字段添加到AR模型

[英]Add a calculated field to AR model in RoR 2

我是RoR的新手,正在研究現有的Rails 2應用程序。 該應用報告了許多指標,我需要添加一個新指標,該指標是其他兩個指標的比率。 我想了解“正確”的Rails方式來做這種事情。 但我也想快速完成它,並且對其余代碼的風險最小。 我想將現有指標的報告,摘要,圖形和聚合邏輯擴展到新的計算字段,而不必以稍微不同的方式重新實現所有內容。

  1. 我可以向DB添加一個字段並安裝一個觸發器程序來維護它。 這樣做的好處是可以將工作推送到數據庫中,並允許我在必要時索引字段,但它會消耗數據庫中的另一個字段,我認為此刻我真的不需要該字段的索引。 AR遷移會是什么樣子?

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

  3. 我可以在查詢中添加新字段... SELECT my_table。*,a / b AS ab_ratio FROM my_table ...這是否意味着我需要檢查該特定模型上的所有.find調用並更改它們? 有沒有更好的方法呢?

如何實現和/或記錄此類事物的位置和方式將會非常有用。

我建議在模型上使用事件來計算合成值並將任何業務邏輯/觸發器保留在數據庫之外:

class MyRecord < ActiveRecord::Base
  before_save :update_ratio

private
  def update_ratio
    self.ratio = self.a / self.b
  end
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM