Hãy coi chừng những câu trả lời khác được trình bày present?
như một câu trả lời cho câu hỏi của bạn.
present?
là ngược lại với blank?
trong đường ray.
present?
kiểm tra xem có giá trị có ý nghĩa hay không. Những điều này có thể không present?
kiểm tra được:
"".present?
" ".present?
[].present?
false.present?
YourActiveRecordModel.where("false = true").present?
Trong khi !nil?
séc cho:
!"".nil?
!" ".nil?
![].nil?
!false.nil?
!YourActiveRecordModel.where("false = true").nil?
nil?
kiểm tra xem một đối tượng có thực sự là nil
. Bất cứ điều gì khác: một chuỗi rỗng, 0
, false
, bất cứ điều gì, không phải là nil
.
present?
là rất hữu ích, nhưng chắc chắn không phải là ngược lại nil?
. Việc nhầm lẫn cả hai có thể dẫn đến những sai sót không mong muốn.
Đối với trường hợp sử dụng của bạn present?
sẽ hoạt động, nhưng luôn khôn ngoan là nhận thức được sự khác biệt.
present?
yêu cầu một chuỗi không trống.! "".nil?
trả về true, nhưng"".present?
trả về false.