活动记录深度嵌套查询和计算列



这是关联,

Publication : has_many exchange_ratesbooksauthors

Book belongs_to authorexchange_rate

Author belongs_to exchange_rate

我正在尝试编写一个查询以查找带有一个额外computed_column books

这是我到目前为止尝试过的查询,

publication.books.joins(:exchange_rate, :author).select("books.*, (exchange_rates.exchange_ratio + (SELECT exchange_rates.exchange_ratio FROM exchange_rates WHERE exchange_rate_id = authors.exchange_rate_id)) AS computed_column")

我的目标是生成一个从关联表属性计算的列。

这意味着,

book.exchange_rate.exchange_ratio + book.author.exchange_rate.exchange_ration AS computed_column

computed_column添加为Book上的attr_accessor

class Book
  attr_accessor :computed_column
end

然后,查询中的每个Book实例都将有可用的book.computed_column

供参考:通过活动记录访问 SQL 计算列

最新更新