我的Rails應用程序需要做的所以他們實際上沒有從數據庫中移除滅活的某些記錄「軟」刪除。目前我使用「is_deleted」標誌來實現它。Rails的篩選出刪除的記錄在協會
我的問題是,是否有涉及該模型處理協會的最佳做法。例如:
class Foo
attr_accessible :is_deleted
scope :active, -> { where(is_deleted:false) }
belongs_to :bar
end
class Bar
has_many :foos
end
我想弄清楚如何設置酒吧模型,知道它通常只處理'積極'的foos。
我想出了一對夫婦的想法,並想知道是否有使用一個比其他任何優點/缺點。
- 在has_many聲明中使用「condition」限定符來篩選出已刪除的項目。
- 在Bar上創建一個「active_foos」方法,只返回未刪除的項目。
- 只需使用「acts_as_paranoid」寶石。它對我所需要的感覺有點重量級,但也許它是最簡單的。