ruby-on-rails - 通过pluck返回关联对象的id

标签 ruby-on-rails postgresql ruby-on-rails-5

我有一个模型城市,其中有很多列表。房源有很多学校。我正在尝试查找一个城市中的所有 school_id。

city.listings.joins(:schools).pluck(:name).uniq

按预期返回城市中所有学校的名称。

但是

city.listings.joins(:schools).pluck(:id).uniq

返回城市中所有列表的 listing_id,而不是学校的 ID。

如何获取 school_ids

最佳答案

你可能会发现反过来更容易:

School.where(listings: city.listings).pluck(:id)

假设您需要根据这些学校做一些事情,您可以避免完全加载 ID,而只是继续编写您的查询:

PerformanceReports
  .where(school: School.where(listings: city.listings))
  .order(score: :desc)
  .limit(5)

关于ruby-on-rails - 通过pluck返回关联对象的id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56510958/

相关文章:

javascript - rails 5 : JS files not loading in Production

ruby - 如何在 Rails View 中打印换行符?

ruby-on-rails - Rails options_for_select 来自模型的数据加上附加数组

sql - 将 PostgreSQL 子查询语句转换为 Sequelize 查询

ruby-on-rails - 在新的 Rails 项目中从 SQLite 更改为 PostgreSQL

postgresql - plpgsql : how to reference variable in sql statement

sql - 判断月份是否包含条目

ruby-on-rails - Rails 应用程序的 HTTPS - InvalidAuthenticityToken

ruby-on-rails - Ruby:根据 block 查找条件删除并返回数组值

ruby-on-rails - Rails 3 Assets 管道 + Apache + Phusion Passenger