1

私は、サードパーティからさまざまなレールモデルに CSV ファイルを多数インポートすることを含むレール 3 アプリケーションを持っています。重い作業のほとんどを実行するスクリプトをいくつか開発しましたが、今日はモデルに多くの検証を追加して、有効なデータがモデル/テーブルに入ることを確認しました。

また、検証エラーをログに記録して、すべてのデータ処理を把握し、検証エラーをすばやく見つけて修正できるようにしたいと考えています。そのために、次の手順を実行しました。

  1. 検証エラーを格納する ValidationError モデルを作成しました。
  2. 最初に new を使用してインスタンスを作成します。
  3. オブジェクトが構築されたら、valid? を使用します。メソッドと、オブジェクトが有効かどうかを判断する if 条件。オブジェクトが有効な場合は、単純に保存します。オブジェクトが有効でない場合は、検証エラー レコードを作成します。
  4. エラー メソッドを使用して、ValidationsError インスタンスにデータを入力します。
  5. 次に、 ValidationError.create(validation_hash[]) を作成します
  6. ActiveAdmin ダッシュボードに validationError モデルを表示し、検証エントリが作成されたらメールを送信します。

質問: 検証エラーを取得するための提案されたアプローチは合理的ですか? 私が提案するものよりも優れている/好ましいと思われる、他の人が使用したアプローチはありますか? 私がやろうとしていることを達成する宝石や組み込み機能を知っている人はいますか?

4

2 に答える 2

1

validation_rage gemを見てください。その宝石を使用して、目的を達成できる場合があります。

于 2013-06-17T03:06:02.790 に答える
1

これも見てください:)

一度に複数のモデルに CSV ファイルをインポートする

および rail_admin_import gem、おそらく上記のステージング テーブル アプローチで拡張できます。

于 2013-06-17T06:54:06.597 に答える