防止将默认范围应用于acts_as_list

时间:2012-09-26 12:16:36

标签: ruby-on-rails ruby-on-rails-3 acts-as-list

我使用acts_as_list生成图书的插槽数量:

acts_as_list :scope => :book_id, :column => :slot

并且有一个默认范围,可以防止删除(软删除)书籍进入结果集:

default_scope where(:is_active => true)

我想阻止默认范围应用于acts_as_list声明,因为如果有人删除了最后一本书并创建了新书,则它们会获得相同的插槽号(因为当它获取最后一个插槽号时,默认值范围被应用,它没有获得删除的条目)。我知道unscoped,但如何将其与acts_as_list一起使用?

我使用的是Rails 3.0.11。

2 个答案:

答案 0 :(得分:4)

您使用acts_as_list

的任何地方

只需这样做,

unscoped.acts_as_list

答案 1 :(得分:0)

似乎宝石的旧版本(0.1.4)有一些错误,而unscoped.acts_as_list并未阻止默认范围的应用。将gem更新到最新版本(0.1.8)修复它。默认情况下,它不应用默认范围,因此我们不需要编写unscoped.acts_as_list

更多细节可以在这里找到:

https://github.com/swanandp/acts_as_list/pull/13