我想要在仅当一个名为@foo的对象被设置时显示一行文本。 在我的视图中,我正在尝试类似于这样的代码:
<% if !@foo.new_record? || !@foo.nil? %>
Foo is not a new record or nil
<% end %>
但是这种方法失败了,返回
You have a nil object when you didn't expect it!
我非常确定这是因为 new_record?
方法。如何检查某个对象不是新记录或不为空而不会出错呢? 在 PHP 中,可以通过询问 if(!empty($foo))
来实现,但是即使在 Rails 中,empty?
方法也会返回相同的错误信息。有什么想法吗?
unless @foo.nil? || @foo.new_record?; puts 'Hello!'; end;
- Jimmy!foo.nil?
让我感到非常困惑,因为它可以被简单地替换为foo
。这是Ruby中一个非常简单和常见的习惯用语:if @foo && !@foo.new_record?
。 - Alex Wayne