-1

有没有更好或更有效的方法来做到这一点?

if not params[:date]
   @date = Date.today.to_s
else
  @date = params[:date]     
end
4

2 回答 2

8
@date = params[:date] || Date.today

如果您想创建Date.today一个字符串,请Date.today.to_s按照评论进行操作:)

于 2013-06-23T17:28:16.693 回答
0

我会这样(我假设这是在 Rails 中):

@date = params[:date].presence || Date.today.to_s

Presence 方法检查 params[:date] 是否不为零且不为空,然后返回值,因此它通常比仅检查 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 编码中非常有用。

于 2013-06-23T17:26:46.987 回答