方法调用中对象 (..) 后两点的含义

seb*_*313 2 ruby ruby-on-rails

下面截取的代码中的两点是什么意思?

@collection = @collection.where(end_time: DateTime.now..) 
Run Code Online (Sandbox Code Playgroud)

Tom*_*ord 6

这是一个无穷无尽的范围,首先在 ruby​​ 版本中引入2.6。您可以在此处查看有关语言功能的最新文档。

与所有 ruby​​ 代码一样,理解小片段的一个好方法是将它们粘贴到 REPL 中,例如pryirb查看结果:

DateTime.now..
  => Fri, 11 Jun 2021 14:29:09 +0000..
Run Code Online (Sandbox Code Playgroud)

因此,在您的特定情况下,代码:

@collection.where(end_time: DateTime.now..) 
Run Code Online (Sandbox Code Playgroud)

是说“collection where end_time >= DateTime.now”的一种奇特方式。您应该会在生成的 SQL 语句中看到这一点。