我有一个Ruby on Rails 5应用程序,MySQL作为数据库。我的表格products
和表格subscriptions
包含标准的Rails 5 datetime
列 - created_at
'。
模型Product has_many :subscriptions
和模型Subscription belongs_to :product
。
我想选择之前为示例1天创建的产品的所有订阅以及以这种方式创建的所有产品(例如过去24小时),我可以像这样使用它们 - {{1} }和product.expired_subscriptions
。
答案 0 :(得分:1)
尝试以下
#=> subscription.rb
scope :expired_subscriptions, -> { where("created_at >= ?", 24.hours.ago) }
scope :active_subscriptions, -> { where(created_at: (Time.now - 24 .hours)..Time.now) }
然后
@product = Product.find(1) #=> find product by ID
@product.subscriptions.expired_subscriptions #=> all subscriptions > 24 hours
#=============#
@product = Product.find(1) #=> find product by ID
@product.subscriptions.active_subscriptions #=> all subscriptions within 24 hours
希望能提供帮助