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") == 4
或 self.date.strftime("%u") == 5
永远不会成立。
但是我想不通为什么。
有什么想法吗?
strftime("%u")
returns 一个字符串。 2 种可能的解决方案:
if self.date.strftime("%u") == "4"
或
if self.date.wday == 4
在我的 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") == 4
或 self.date.strftime("%u") == 5
永远不会成立。
但是我想不通为什么。
有什么想法吗?
strftime("%u")
returns 一个字符串。 2 种可能的解决方案:
if self.date.strftime("%u") == "4"
或
if self.date.wday == 4