ruby-on-rails - 我如何使用事件记录从 foren 表中进行选择

标签 ruby-on-rails postgresql activerecord

我有 2 个表,帐户和订阅。所有帐户都有订阅,当我订阅时

Account.last.subscription.name
  Account Load (0.4ms)  SELECT "accounts".* FROM "accounts" ORDER BY "accounts"."id" DESC LIMIT 1
  Subscription Load (0.2ms)  SELECT "subscriptions".* FROM "subscriptions" WHERE "subscriptions"."account_id" = 73 LIMIT 1
"free"

但我正在尝试获取所有设置为免费的帐户。

最佳答案

您的问题没有提供详细信息,因此我们必须做出一些假设。假设 Subscription 有一个 bool 值 free 列。

# Rails 4
Account.joins(:subscriptions).where(free: true).references(:subscriptions)

# Rails 3
Account.joins(:subscriptions).where('subscriptions.free = ?', true)

如果我们假设 free 是一个帐户属性:

Account.where(free: true)

如果您想提取订阅详细信息:

Account.where(free: true).includes(:subscriptions)

关于ruby-on-rails - 我如何使用事件记录从 foren 表中进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17603012/

相关文章:

ruby-on-rails - Rails 根据关联属性查询记录

postgresql - SparkSQL PostgresQL 数据框分区

ruby-on-rails - Rails ActiveRecord - 从没有表的基类继承

ruby-on-rails - 自动重启时如何运行 unicorn ,我得到找不到 gem 错误

ruby-on-rails - 无法安装调试器 gem

sql - 此 INSERT 是否可能导致任何锁定/并发问题?

mysql - 如何判断是否已经在 ruby​​ on rails 的数据库事务中?

javascript - Rails 5 AJAX 拒绝渲染部分内容

ruby-on-rails - ASCII-8BIT 中的 Rails 编码

postgresql - 为什么不使用索引?