QA@IT
«回答へ戻る

回答を投稿

act_as_listを使った事が無いので削除部分がどうなっているかわかりませんが

しかしafter_destroyではコールバックを呼び出せませんでした。

deleteで削除している場合はafter_destroyは呼び出されません。
destroyで削除する事が可能なら呼び出されるかもしれません。

別の対処方法で(グループごとのpositionを利用させるための)scopeを使って対処する方法もあるようです
以下は論理削除の例ですが、論理削除時に存在判断用の列にnil以外を設定し、scopeにその列を利用した条件を設定しておく方法が以下のサイトで紹介されていました。

http://blog.keit.me/20130123/142/

deleted_at列を用意しておき

acts_as_list :scope => 'deleted_at is NULL'

この状態で、論理削除時にdeleted_at列にNULL以外を設定する。
というものです。

act_as_listを使った事が無いので削除部分がどうなっているかわかりませんが

> しかしafter_destroyではコールバックを呼び出せませんでした。

deleteで削除している場合はafter_destroyは呼び出されません。
destroyで削除する事が可能なら呼び出されるかもしれません。


別の対処方法で(グループごとのpositionを利用させるための)scopeを使って対処する方法もあるようです
以下は論理削除の例ですが、論理削除時に存在判断用の列にnil以外を設定し、scopeにその列を利用した条件を設定しておく方法が以下のサイトで紹介されていました。

http://blog.keit.me/20130123/142/

deleted_at列を用意しておき

```
acts_as_list :scope => 'deleted_at is NULL'
```

この状態で、論理削除時にdeleted_at列にNULL以外を設定する。
というものです。