次の配列があります。
@unregistered_users = ['my@email.com', 'your@email.com', ...]
ここで、配列要素ごとにドキュメントを作成します。
@unregistered_users.each do |email_address|
Model.create(email: email_address, user: self.user, detail: self)
end
ただし、単一のドキュメント (配列の最初の要素) しか作成されません。他の配列要素は単に作成されません。なんで?
Ruby 1.9.3-p385、Rails 3.2.12、MongoID 3.0.0、MongoDB 2.2.3 を使用しています。
更新 #1
そのため、 を_id
使用したカスタム ランダム トークンを持つカスタム フィールドがありましたSecureRandom.hex(64).to_i(16).to_s(36)[0..127]
。
削除した後は正常に機能しましたが、通常の mongo ID を使用していました (これは私たちが望んでいるものではありません)。
アップデート #2
トークンの生成方法は次のとおりです。
class Model
include Mongoid::Document
include Mongoid::Timestamps
...
field :_id, default: SecureRandom.hex(64).to_i(16).to_s(36)[0..127]
...
index( { _id: 1 }, { unique: true } )
end