首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关联法的模型范围

关联法的模型范围
EN

Stack Overflow用户
提问于 2016-02-10 09:28:56
回答 1查看 76关注 0票数 0

我试图为未来的事件创建一个作用域,事件的日期是基于活动日期的,在我的事件模型中有一个名为end_at的方法,但是当我试图为我的控制器创建一个作用域时

代码语言:javascript
复制
PG::UndefinedColumn: ERROR:  column "end_at" does not exist

事件模型

代码语言:javascript
复制
has_many :activities, dependent: :destroy

scope :future_events, -> { where('end_at >= ?', Date.today) }

def end_at
  activities.chronological.last.end_at
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-10 09:35:41

用方法查询是不可能的。你可以这样做:

代码语言:javascript
复制
scope :future_events, lambda {
  joins(activities: :chronological)
    .where('chronologicals.end_at >= ?', Date.today)
}

描述:

  • joins中,你放置了关联的名称;
  • where中,您将表的实名放在数据库中如何命名(它们有时恰好与模型的关联名称不同)。

这个范围基本上是说您希望返回未来的事件,其中它的活动的时间顺序的end_at属性是>= Date.today

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35311227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档