【发布时间】:2014-02-11 15:07:20
【问题描述】:
我刚刚注意到我可以在 AR 时间戳上调用布尔方法。我可以依赖这种行为,还是它是一个小故障?
foo.updated_at? #=> true if not nil, but false if nil
如果我有一个@task.completed_on 列,这很有用。我可以使用completed_on 来确定任务是否已完成(有时间戳,或者为零)。
@task.completed?
class Task < ActiveRecord::Base
def completed?
completed_on?
end
end
【问题讨论】:
-
我怀疑这是一个小故障,因为 AR 使用 method_missing 来创建这些方法。他们一定是故意创造的。
-
[36] pry(main)> User.last.updated_at? SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 => true 看看它执行了什么希望你知道它是什么
-
@RajarshiDas 我应该在寻找什么?
标签: ruby-on-rails ruby activerecord ruby-on-rails-4 rails-activerecord