0

Sử dụng .nil? .empty? .blank? .present? trong Rails 5 như thế nào cho đúng?

Các phương thức của Ruby có vẻ khá đáng ngại đối với một lập trình viên mới và biết khi nào nên sử dụng cái nào có thể cảm thấy giống như một lỗ đen khổng lồ. Tôi muốn kết hợp một cheatsheet nhanh và hướng dẫn sử dụng một số phương pháp phổ biến nhất trong Ruby và Rails .nil? .empty? .blank? and .present?

1. .nil? [RUBY]

Hãy nhớ ngày đầu tiên học Ruby khi bạn được thông báo rằng hầu hết mọi thứ đều là một đối tượng? Vâng, nil cũng là class của nó. Nếu kiểm tra .nil? sẽ chỉ trả về true nếu đối tượng là nil. Điều đó có nghĩa là một chuỗi rỗng KHÔNG phải là nil và một mảng trống là KHÔNG phải nil.

nil.class
=> NilClass
nil.nil? 
=> true 
"".nil? 
=> false
false.nil? 
=> false
[].nil? 
=> false

Để biết thêm thông tin về .nilNilClass, hãy xem bài viết hướng dẫn Ruby tại link này!

2. .empty? [RUBY]

.empty có nghĩa là đối tượng độ dài mà bạn đang cố gắng đánh giá == 0. Nó chủ yếu được sử dụng cho hashs, stringsarray.

nil.empty? 
NoMethodError: undefined method `empty?' for nil:NilClass
false.empty? 
NoMethodError: undefined method `empty?' for false:FalseClass
"".empty? 
=> true
" ".empty? 
=> false
[].empty? 
=> true
[ ].empty? 
=> true

3. .blank? [RAILS]

.blank? là một method của Rails và giải quyết vấn đề về lỗi xấu mà bạn gặp phải khi kiểm tra nếu một cái gì đó trống rỗng. Đây là một phương thức ActiveRecord tồn tại cho bất kỳ đối tượng Rails nào và sẽ trả về true cho nil, false, empty hoặc chuỗi khoảng trắng.

nil.blank?
=> true
false.blank?
=> true
 
"".blank? 
=> true 
" ".blank? 
=> true (different from .empty?)
[].blank? 
=> true
{}.blank?
=> true

4. .present? [RAILS]

Ngoài ra, một method của Rails, .present? ngược lại với.blank? Nói cách khác : !object.blank? == object.present?

Tham khảo

https://medium.com/le-wagon/how-to-use-nil-blank-present-exists-in-rails-5-fe03e78ab979


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí