因此,我有以下(简化的)模式
User具有多个预订预订具有开始和停止(日期)和引用(belongs_to)发布发布具有id和名称User has_many通过预订发布
用户可以有多个不同日期的发布订阅。
我想要的是获得一个用户的订阅列表,但只是最近的,而不是未来的,为每个酒吧。
因此,给定订阅中的以下行:
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的对象。
发布于 2013-11-15 15:20:08
这对你有效吗?
在用户模型中
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
https://stackoverflow.com/questions/19938514
复制相似问题