0

Railsクラスから既存のオブジェクトを削除する最も効率的な方法は何ですか? 私はオブジェクトの配列を持っています

person_array = [Person1, Person2, Person3]

私の目標は、その配列内のすべての人を、メンバーであるテーブルから削除することです。

だから私は彼らが現在属している People クラスを持っています。

People.delete(person_array)適切な SQL ステートメントを実行しているように見えるようなものを考えていました。これらの削除ステートメントを取得して、実際に People テーブルを変更するにはどうすればよいですか?

4

2 に答える 2

0

ID を取得する必要があるのか​​、それとも Activerecord がそれを行うのかは不明です。

Person.delete_all person_array.map(&:id)
于 2012-07-24T00:35:02.623 に答える
0

既にオブジェクトを持っているのでdestroy_all、それらを呼び出すことができます:

Person.destroy_all(:id => person_array)

とは異なりdelete_all、これはモデルのコールバックを呼び出します。これには時間がかかる場合がありますが、整合性は維持されます。

于 2012-07-24T01:39:43.727 に答える