首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ActiveRecord,has_many :直通,但仅限于最新版本

ActiveRecord,has_many :直通,但仅限于最新版本
EN

Stack Overflow用户
提问于 2013-11-13 03:47:34
回答 1查看 26关注 0票数 0

因此,我有以下(简化的)模式

User具有多个预订预订具有开始和停止(日期)和引用(belongs_to)发布发布具有id和名称User has_many通过预订发布

用户可以有多个不同日期的发布订阅。

我想要的是获得一个用户的订阅列表,但只是最近的,而不是未来的,为每个酒吧。

因此,给定订阅中的以下行:

代码语言:javascript
运行
复制
ID | user_id | start      | stop      | publication_id
1  | 1       | 2013-01-01 | 2013-12-01| 1
2  | 1       | 2014-01-01 | 2014-12-31| 1
3  | 1       | 2011-01-01 | 2011-12-31| 1
4  | 1       | 2013-01-01 | 2013-02-01| 2

将返回表示ID 1和4的对象。

EN

回答 1

Stack Overflow用户

发布于 2013-11-15 15:20:08

这对你有效吗?

在用户模型中

代码语言:javascript
运行
复制
def current_subscriptions
  self.subscriptions.where("start < ? AND stop >= ?", Date.today, Date.today)
end

因此,对于任何@user.current_subscriptions,它都会查询它们的订阅,查找今天之前开始的、直到今天或之后才停止的任何订阅,这将删除ID为2和3的对象,并返回ID为1和4的对象。

此外,如果您希望使用Date.today来表示当天的日期,请在用户模型中包含Active Support

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

https://stackoverflow.com/questions/19938514

复制
相关文章

相似问题

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