お世話になっております。
ブラウザからjsonファイルをアップロードし、中身を一時テーブルにinsertする機能を作成しようとしています。
この際に、insert前に値のチェックを行い、問題があれば画面にエラーを表示したいと考えています。
現在は「json_schema_rails」のgemを使用してチェックをしているのですが、速度が遅いという点と、吐き出されるエラーメッセージ
が英語になってしまうという2点の問題から、違う方法がないかを探しています。
DBはpostgresqlを使用しています。
①他のライブラリを使用
②Railsのモデルでvalidate
③insert時にDBのカラム制約でエラーを拾う
など複数の方法が考えられると思うのですが、速度面とエラーの表示をすることを考えると、どのような方法が望ましいでしょうか?
よろしくお願い致します。
//読み込むjson [ { //すべてOK "not_nul": 1, "max_len5": "aiueo", "min_len3": "123", "number_only_int": 123, "number_only_string": "123" }, { //not_nullがエラー "not_nul": '', "max_len5": "aiueo", "min_len3": "123", "number_only_int": 123, "number_only_string": "123" }, { //max_lenがエラー "not_nul": 1, "max_len5": "aiueoka", "min_len3": "123", "number_only_int": 123, "number_only_string": "123" }, { //min_lenがエラー "not_nul": 1, "max_len5": "aiueo", "min_len3": "12", "number_only_int": 123, "number_only_string": "123" }, { //number_only_intがエラー "not_nul": 1, "max_len5": "aiueo", "min_len3": "123", "number_only_int": "123", "number_only_string": "123" }, { //number_only_stringがエラー "not_nul": 1, "max_len5": "aiueo", "min_len3": "123", "number_only_int": 123, "number_only_string": "aiu" } ] 画面に出したいエラー文 下記のエラーがあります。 1行目: not_nulが入力されていません。 2行目: max_lenが最大文字数を超えています。 3行目: min_lenが最小文字数に足りません。 4行目: number_only_intの型が違います。 5行目: number_only_stringに入力可能なのは数値のみです。
Rails 5
postgresql 9.6
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/13 01:52