2017-07-28 5 views
0

を変更しました。レールを複数持つアクティブなレコードの関係を更新するには、私はこのように定義されたアクティブなレコードの関係を持っている性質

私は、個々の連絡先にsave!を行うにはしたくない...どのように私はより良いループの後、全体の連絡先の関係を保存することができますか?それはその新しいプロパティが含まれていた後、私は、新たにアップデート接点ActiveRecordの関係を保存するにはどうすればよい

contacts.each do |contact| 

     //Change properties of contact here 

end 

最も効率的な方法は、保存接触による接触をしていることはできません。

+0

は、あなたのロジックはSQLで実装されていませんか?したがって、ActiveRecordを使用して、オブジェクトをループせずにデータベースで一度に実行できます。 –

+0

いいえ、あまりにも多くのことがそれぞれの内部で起こっています。更新されたactiverecord関係を持っていれば、SQLで更新できますか?申し訳ありませんが、それはあなたが意味するものです。私に教えてください@StephanePaquet – Walker

+0

UPDATEコマンドを使うことができるように、タイプ別にアップデートをグループ化しようと考えていました。 conditions' –

答えて

1

update_allがループをやってからあなたを節約し、あなたのために保存しない、ここではドキュメントです。 https://apidock.com/rails/v4.0.2/ActiveRecord/Relation/update_all

+0

であるか表示されません。私はまた、連絡先の属性を使用し、異なる属性を持つ異なる連絡先を変更します。これは機能しません。ありがとうございます – Walker

+0

このループで何をしているのかを理解するためにコードを共有できますか? –

0

あなたはactiverecord-importを使用することができます。あなたが言ったように、あなたは各連絡先のすべての新しい値を割り当て、最後に一括でこの変更を保存することができますupsert

関連する問題