我有一个包含很多联系人的表单。我希望能够删除联系人而不是真正删除它们,而是将它们标记为已删除。我在我的联系人表中添加了一个属性“已删除”。
在大多数情况下,我想要一个表单联系人,我只想要那些没有被删除的联系人:
form.contacts.find_all_by_deleted(false)
这看起来很乱,所以我想到了 named_scope 或 default_scope,但很多人似乎都说它们是邪恶的。
我还想过将表单上的关系更改为(这与默认范围相同吗?这是邪恶的吗?):
has_many :contacts, :conditions => ["deleted = false"]
在我的管理 View 中,我需要能够看到所有联系人。我想我可以从添加表单 ID 的联系人端进行查找。
这似乎是人们会大量实现的事情,并且必须就最佳实践达成一致。
任何解决方案都必须在 Rails 2 中工作,并且不能在 Rails 3 中过时。最好不要使用插件或 gem。
最佳答案
你表现得像个偏执狂:-) http://ar-paranoid.rubyforge.org/
关于ruby-on-rails - rails 实现删除的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4109422/