mysql - 选择过期和未过期的值 MySQL、Rails 5

标签 mysql ruby-on-rails activerecord

我有一个 Ruby on Rails 5 应用程序,使用 MySQL 作为数据库。我有表 products 和表 subscriptions 以及标准 Rails 5 datetime 列 - created_at'。

模型Product has_many :subscriptions 和模型Subscription own_to :product

我想选择之前为示例 1 天创建的产品的所有订阅以及创建的所有产品(例如过去 24 小时),这样我就可以像这样使用它们 - product .expired_subscriptionsproduct.active_subscriptions

最佳答案

尝试以下操作

#=> 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

希望有帮助

关于mysql - 选择过期和未过期的值 MySQL、Rails 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48129362/

相关文章:

mysql - Sequelize 迁移文件 : adding createdAt and updatedAt columns

mysql - vb.net上传pdf到mysql

ruby-on-rails - 使用 rails 3.1.0 和 ubuntu 安装 Nokogiri 1.5.0 时出错

ruby-on-rails - Rails 使用 <%= link_to %> 创建指向外部站点的链接

ruby-on-rails - 从另一个模型触发模型中的状态更改

mysql - 如何使用 mysql 代码动态地将整数 16 英寸转换为小数英寸?

php - 从数据库中检索年份和月份

ruby-on-rails - Rails 3 - 使用“包含”进行选择?

ruby-on-rails - rails : Delete associated records on object destroy

ruby-on-rails - 将配置文件模型的某些属性设置为对其他用户公开(可见)或私有(private)(不可见)的最佳方法是什么?