我有一个候选人 has_many 选票。
我正在尝试获取当月创建的候选人的选票?
@candidate.votes.from_this_month
scope :from_this_month, where("created_at > ? AND created_at < ?", Time.now.beginning_of_month, Time.now.end_of_month)
这给了我一个 PG 错误: PG::错误:错误:列引用\"created_at\"不明确
如果我尝试
scope :from_this_month, where("vote.created_at > ? AND vote.created_at < ?", Time.now.beginning_of_month, Time.now.end_of_month)
出现以下错误
PG::Error: ERROR: missing FROM-clause entry for table "vote"
最佳答案
正确的范围
scope :from_this_month, lambda {where("votes.created_at > ? AND votes.created_at < ?", Time.now.beginning_of_month, Time.now.end_of_month)}
这是因为在 rails 中模型名称是单数的(即 Vote
)并且创建的表是纯的(例如 votes
)通过对流
编辑
这可以用 lambda {where(created_at: Time.now.beginning_of_month..(Time.now.end_of_month))}
写得更简单,由于在中给出的原因,我们需要使用 lambda下面的评论。
感谢 BroiSatse 的提醒 :D
关于ruby-on-rails - 如何获取当月创建的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22423079/