1

私はact_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 を使用しています。

4

2 に答える 2

4

どこで使ってもacts_as_list

代わりにこれを行うだけで、

unscoped.acts_as_list
于 2012-09-26T12:23:23.450 に答える
0

古いバージョン(0.1.4)のgemにはバグがありunscoped.acts_as_list、デフォルトのスコープの適用を妨げていなかったようです。gemを最新バージョン(0.1.8)に更新すると、修正されました。デフォルトでは、デフォルトのスコープは適用されないため、記述する必要はありません。unscoped.acts_as_list

詳細については、こちらをご覧ください。

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

于 2012-10-04T13:53:52.533 に答える