我正在尝试创建一个命名范围,我想在其中接收仅在创建后的第一周内更新的记录。 如您所见,我收到列名created_at的错误消息。
scope :shortlived, where("updated_at < ?", (created_at+7.days))
undefined local variable or method `created_at' for #<Class:0xb184725c>
如果您能告诉我可能出现的问题,我将不胜感激。
答案 0 :(得分:3)
您可以使用特定于数据库的内容。例如对于MySQL:
export class FirstModalComponent implements OnInit {
@ViewChild(BsModalRef) rejectedReasonModal: BsModalRef;
constructor(private modalService: BsModalService, public bsModalRef: BsModalRef) {
}
private modalConfig = {
animated: true,
keyboard: false,
backdrop: true,
ignoreBackdropClick: true
};
showRejectionModal(template: TemplateRef<any>) {
this.rejectedReasonModal = this.modalService.show(seconModal, Object.assign({}, this.modalConfig, {class: 'modal-sm'}));
}
rejectPayment() {
this.modalService.setDismissReason("REJECTED");
this.rejectedReasonModal.hide();
this.bsModalRef.hide();
}
}
答案 1 :(得分:2)
这与此处发布的答案类似。如果你正在使用postgreSQL,你可以只比较7天的差异&#39;间隔
scope :shortlived, -> { where("(updated_at - created_at) < '7 days'") }