0

複数行のデータを含む csv ファイルをアップロードすると、有効なもの (モデルの検証に基づく) とそうでないものがあるため、無効なデータを含む行が存在する場合でも、有効なエントリがデータベースに入力されます。 csv ファイルで。

無効なフィールドが見つかった場合、csv ファイル全体を拒否するにはどうすればよいですか? ありがとう。

4

1 に答える 1

1

呼び出し全体をトランザクションでラップする必要があります。あなたのモデルが User であるとしましょう:

ActiveRecord::Base.transaction do
    CSV.each do |l|
        a = User.new(l)
        if !a.save
          raise ActiveRecord::Rollback
        end
     end
   end
end
于 2013-05-29T23:25:45.543 に答える