2012-09-26 55 views
1

我使用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。

回答

0

看來,創業板的舊版本(0.1.4)有一些bug和unscoped.acts_as_list沒有阻止默認範圍從申請。更新寶石到最新版本(0.1.8)修復它。默認情況下,它並不適用於默認的範圍,所以我們並不需要寫unscoped.acts_as_list

更多細節可以在這裏找到:

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

4

,無論你使用acts_as_list

只是這樣做相反,

unscoped.acts_as_list 
+0

您在模型中定義它。它不是一個有名望的範圍。你可以看看這裏的文檔:https://github.com/swanandp/acts_as_list –

+1

當定義它時你可以用'unscoped'作爲前綴'acts_as_list' - acts_as_list只是一個在類上調用的方法,所以是'unscoped',所以鏈接它們沒什麼問題:'unscoped.acts_as_list' – MrTheWalrus

+0

感謝您的指針。看起來版本0.1.4中有一些錯誤,因此它不起作用。它似乎已被修復爲0.1.8:https://github.com/rails/acts_as_list/pull/11 –