我的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”宝石。它对我所需要的感觉有点重量级,但也许它是最简单的。