所以我有以下(简化)架构
用户有很多订阅 订阅具有开始和停止(日期),以及引用(belongs_to)出版物 出版物有id和名字 用户通过订阅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的对象。
答案 0 :(得分:0)
这对你有用吗?
在您的用户模型中
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