Rails モデル スキーマを作成して、iPhoneの contact に一致するように作成しました。これには、複数値の電子メールの関連付けなどが含まれます。連絡先配列全体 (おそらく 1,000 以上のオブジェクトで、それぞれに複数の電子メール オブジェクトが含まれている可能性があります) をインポートするコントローラー アクションがあります。これをかなり効率的に実行する必要があるため、バッチ インポート用のactiverecord-importを検討していました。ただし、バッチがインポートされるたびに重複を追加し続けないように、各連絡先の範囲内で電子メールの一意性を検証する必要があります。独自のバージョンをupdate_attributes
手動で作成する必要がありますか、またはこのような多くのレコードを検証/更新するために推奨できる既存のソリューションはありますか?
連絡先モデル
class Contact > ActiveRecord::Base has_many :アドレス has_many :メール has_many :ウェブサイト accept_nested_attributes_for :addresses、:emails、:websites attr_accessible :prefix, :first_name, :middle_name, :last_name, :suffix, :ニックネーム, :所属, :役職, :部署, :誕生日, :addresses_attributes、:emails_attributes、:websites_attributes 終わり
メールモデル
クラス Email > ActiveRecord::Base 所属先:連絡先 # validates_uniqueness_of :account, :scope => :contact_id # 重複を防ぎますが、兄弟の値もスキップします # 検証 :contact_id, :presence => true, :on => :create # 422 エラーが発生する 検証 :account, :presence => true, :format => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[az]{2, })\Z/i, :on => :create attr_accessible :contact_id、:email_id、:account、:label 終わり