Tôi muốn hiển thị một dòng văn bản chỉ khi một đối tượng được gọi là @foo được đặt. Theo quan điểm của tôi, tôi đang cố gắng một cái gì đó như thế này:Làm thế nào để kiểm tra xem một đối tượng là nil trong một khung nhìn trong Ruby?
<% if [email protected]_record? || [email protected]? %>
Foo is not a new record or nil
<% end %>
Nhưng điều này thất bại, trở về You have a nil object when you didn't expect it!
Tôi chắc rằng điều này xảy ra vì phương pháp new_record?
. Làm cách nào để kiểm tra xem có gì đó không phải là bản ghi mới hay không mà không gây ra lỗi? Trong PHP, nó sẽ đạt được bằng cách yêu cầu if(!empty($foo))
nhưng ngay cả phương pháp empty?
trong đường ray cũng gây ra cùng một lỗi được trả lại.
Bất kỳ ý tưởng nào?
trực quan nhất! cảm ơn bạn! –
Bạn cũng có thể khá lên một chút với Luật của DeMorgan: 'trừ khi @ foo.nil? || @ foo.new_record ?; đặt 'Hello!'; kết thúc; ' –
'! foo.nil? 'làm cho não của tôi bị chảy máu bởi vì nó có thể được thay thế bằng 'foo'. Làm cho một thành ngữ ruby rất đơn giản và phổ biến: 'if @foo &&! @ Foo.new_record? ' –