Anda juga dapat melakukan hal berikut:
unless params.values_at(:one, :two, :three, :four).includes?(nil)
... excute code ..
end
Saya cenderung menggunakan solusi di atas ketika saya ingin memeriksa lebih dari satu atau dua params.
.values_at kembali dan array dengan nihil menggantikan kunci param yang tidak terdefinisi. yaitu:
some_hash = {x:3, y:5}
some_hash.values_at(:x, :random, :y}
akan mengembalikan yang berikut:
[3,nil,5]
.includes? (nil) lalu periksa array untuk nilai nil. Ini akan mengembalikan true adalah array termasuk nil.
Dalam beberapa kasus, Anda mungkin juga ingin memeriksa bahwa params tidak mengandung dan mengosongkan string pada nilai yang salah.
Anda dapat menangani nilai-nilai itu dengan menambahkan kode berikut di atas pernyataan kecuali.
params.delete_if{|key,value| value.blank?}
semuanya akan terlihat seperti ini:
params.delete_if{|key,value| value.blank?}
unless params.values_at(:one, :two, :three, :four).includes?(nil)
... excute code ..
end
Penting untuk dicatat bahwa delete_if akan memodifikasi hash / params Anda, jadi gunakan dengan hati-hati.
Solusi di atas jelas membutuhkan sedikit lebih banyak pekerjaan untuk diatur tetapi sepadan jika Anda memeriksa lebih dari satu atau dua params saja.
params
ini adalah metode pengendali Rails (yang terjadi untuk mengembalikan HashWithIndifferentAccess), ini adalah tentang Rails.