Apakah validasi kehadiran Rails ActiveRecord berguna jika validasi lain gagal?

Jika saya memiliki validasi yang memerlukan nilai tertentu dalam suatu bidang, seperti format: { with: some_regex } atau inclusion: { in: some_array } yang akan gagal saat kosong atau nihil, apakah menyetel validasi presence: true berguna? Dalam situasi yang sama, apakah validasi length: { } berguna jika validasi lainnya gagal?

Demikian pula, dapatkah validasi panjang {1..n} menghalangi kebutuhan validasi kehadiran?

Saya mencoba mencari tahu apakah ada hal lain yang terjadi atau apakah pemeriksaan tersebut hanya mubazir. Misalnya, Tutorial Rails memiliki validasi presence: true pada alamat email tetapi validasi format tidak boleh mengizinkan alamat kosong atau nihil. Tampaknya berlebihan, atau apakah itu gaya/konvensi?


person George Shaw    schedule 11.05.2012    source sumber


Jawaban (2)


Jika Anda menggunakan sesuatu seperti format: regex dan Anda dapat menjamin (cukup mudah melalui pengujian unit) bahwa atribut kosong atau nil akan menyebabkan seluruh catatan menjadi tidak valid, maka ya, Anda tidak perlu memvalidasi keberadaannya. Sama dengan situasi inclusion, dan situasi length.

Secara umum, menambahkan lebih banyak validasi tidak selalu berarti buruk. Namun, jika Anda telah menguji model Anda secara menyeluruh untuk situasi dengan atribut kosong atau nihil dan validasi Anda saat ini mencapai hasil yang diinginkan, maka Anda baik-baik saja.

person MrDanA    schedule 11.05.2012

Validasi kehadiran jika lebih lemah dari apa pun yang disebutkan. Saya lebih suka tidak menaruhnya

validates presence: true

memiliki, misalnya,

validates format: { with: some_regex }, allow_blank: false

karena nanti sudah akan mencakup situasi dengan bidang yang memiliki nilai nil.

person gmile    schedule 11.05.2012