Rails 4:条件 model.date.strftime("%u") 永远不会为真

Rails 4: condition on model.date.strftime("%u") never true

在我的 Rails 4 应用程序中,我有一个带有自定义 :date 属性的 post 模型。

post.rb文件中,我定义了如下方法:

def test_days
    if self.date.strftime("%u") == 4
        "Message 1"
    elsif self.date.strftime("%u") == 5
        "Message 2"
    else
        "Message 3"
    end
end

无论我将哪个日期分配给 post 对象,我总是会显示 "Message 3" — 即使我应该显示 "Message 1" 或 "Message 2"。

我尝试了 Today.date.strftime("%u") 并得到了 1(这是正确的答案,因为我们在我的时区是星期一)。

所以,我的条件似乎是:self.date.strftime("%u") == 4self.date.strftime("%u") == 5 永远不会成立。

但是我想不通为什么。

有什么想法吗?

strftime("%u") returns 一个字符串。 2 种可能的解决方案:

if self.date.strftime("%u") == "4"

if self.date.wday == 4