5

プロセスをループして毎回データベースにオブジェクトを追加したいのですが、正しく追加されていない場合は、多次元配列にエラーを収集したいと思います。1つの配列は、エラーが発生したロットを保持し、2番目の配列にはエラーメッセージが表示されます。

私の申告書です:

errors = [[],[]]

したがって、配列を次のようにフォーマットする必要があります。

[[lot_count, "#{attribute}: #{error_message}" ]]

ループした後は次のようになります。

[[1, "Name: Can not be blank" ],[1, "Description: Can not be blank" ],[2, "Name: Can not be blank" ]]

私の問題は、それが配列に追加されないことです。多次元配列の構文が異なるかどうかはわかりません。

これは私の配列に何も与えません

errors.push([[lot_count, "#{attribute}: #{error_message}" ]])

これも私の配列には何も与えません

errors += [[lot_count, "#{attribute}: #{error_message}" ]]
4

2 に答える 2

3

プッシュするときに配列をネストしすぎているようです。

errors.push([lot_count, "Foo:Bar"])
# => [[], [], [1, "Foo:Bar"]]
于 2013-01-24T20:52:25.913 に答える
3

空の配列から始めることができます...

errors = []

...次に、単一のエラー配列を作成します...

e = [lot_count, "#{attribute}: #{error_message}" ]

...そしてそれをエラー配列の最後にプッシュします。

errors << e
# or errors.push(e)

これはあなたにあなたの最終結果を与えるでしょう

[[1, "Name: Can not be blank" ],[1, "Description: Can not be blank" ],[2, "Name: Can not be blank" ]]
于 2013-01-24T20:54:10.447 に答える