有更好或更有效的方法吗?
if not params[:date]
@date = Date.today.to_s
else
@date = params[:date]
end
@date = params[:date] || Date.today
如果你想让Date.today
成为一个字符串,那么按照注释做Date.today.to_s
:)
我会这样做(我假设这是在Rails中):
@date = params[:date].presence || Date.today.to_s
presence方法检查params[:date]是否不是nil且不为空,然后返回值,因此它通常比只检查nil更安全。
正如The Tin Man所指出的,如果你不在Rails中,并且不想需要active_support,你可以对Object类进行猴子补丁:
class Object
def blank?
respond_to?(:empty?) ? empty? : !self
end
def present?
!blank?
end
def presence
self if present?
end
end
我发现这三种方法在日常Ruby编码中非常有用。