【发布时间】:2017-03-14 10:03:47
【问题描述】:
型号
尝试 1
def challenge_date
deadline || date_started
end
尝试 2
def challenge_date
if deadline != date_started
[deadline, date_started].reject(&:blank?).join()
else
date_started
end
end
两次尝试都报错。我需要方法来遍历next_user_challenge
def next_user_challenge
user.challenges.where('challenge_date > ?', challenge_date).order('challenge_date ASC').first
end
导轨 c
# some challenges will just have a deadline
id: 1,
name: "Publish a Novel",
deadline: Sat, 26 Nov 2016,
date_started: nil,
user_id: 117,
# some challenges will just have a date_started
id: 2,
name: "Write a Chp",
deadline: nil,
date_started: Thu, 20 Oct 2016,
user_id: 117,
# and some challenges will have both
id: 3,
name: "Run a Mile",
deadline: Thu, 26 Sep 2016,
date_started: Thu, 26 Sep 2016, # If challenge has both deadline and date_started then date_started will be the same date as the deadline
user_id: 117,
【问题讨论】:
-
challenge_date是一种方法,所以你不能对它进行数据库查询。在比较有开始日期的挑战和有截止日期的挑战时,如何确定下一个挑战是什么? -
next_user_challenge是您的User模型上的方法吗?您能否说明一下您希望将哪个日期与挑战的截止日期/开始日期进行比较?
标签: ruby-on-rails ruby