Ruby on rails 如何使用活动记录从foren表中进行选择

Ruby on rails 如何使用活动记录从foren表中进行选择,ruby-on-rails,postgresql,activerecord,Ruby On Rails,Postgresql,Activerecord,我有两个表、帐户和订阅。所有的帐户都有订阅,当我订阅时 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 "subscriptio

我有两个表、帐户和订阅。所有的帐户都有订阅,当我订阅时

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
有一个布尔
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)

你的问题缺乏细节,所以我们不得不做出一些假设。让我们假设
Subscription
有一个布尔
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)

根据日志,我认为OP使用
name
属性来定义哪些实例是免费的。这对我来说并不完全有意义。根据日志,我认为OP使用
name
属性来定义哪些实例是免费的。对我来说不完全有意义。