我的Company
模型has_many
balances
和prices
。
class Company < ActiveRecord::Base
has_many :balances, dependent: :destroy
has_many :prices, dependent: :destroy
end
Balance
和Price
都有date
和amount
列。
我想获得最近的10项balances
和prices
的相同日期。
这是我写的代码:
c = Company.first
balances = c.balances.order(:date).last(10)
prices = Balance.where(date: balances.map(&:date))
我认为最好先加入blances
和prices
表,然后从company_id
和date
中选择表格。
但我无法弄清楚如何写它。
我怎么写呢?
我想在Rails方式中使用这样的函数。
ActiveRecord::Base.connection.execute('SELECT "balances".*, prices.name FROM "balances" LEFT JOIN "prices" ON "balances"."date" = "prices"."date" where balances.company_id = 1 AND prices.company_id = 1 ORDER BY balances.date ASC').values.last(10)