我希望能够从控制器返回一些数据,以便我可以使用gon gem在JavaScript中创建图形。
我有两种模式:
account: id[PK, int], name[string], credit[boolean], active[boolean]
balance: id[PK, int], account_id[FK, int], balance[decimal], date[date]
class Account < ActiveRecord::Base
has_many :balances
end
class Balance < ActiveRecord::Base
belongs_to :account
end
对于指定日期@latestDate
,我希望能够返回帐户[姓名],帐户[信用]和余额[余额]。
目前,使用下面的代码,我可以在给定日期返回balance
对象,但如何返回已加入的account
数据,以便我还拥有帐户[名称]和帐户[信用]。
代码:
def statement
@dates = Balance.select("distinct(date)").order('date desc')
if (params[:date_id].blank?)
if (Balance.count > 0)
@latestDate = Balance.order('date desc').first.date
else
@latestDate = Date.current
end
else
@latestDate = params[:date_id]
end
@summaryBalances = Balance.joins(:account).order('accounts.credit').where('date = :abc', {abc: @latestDate})
gon.assets = @summaryBalances
end
答案 0 :(得分:0)
要获得帐户对象,您应该了解模型的关系。
ex)
@summaryBalances.each do |ba|
account = ba.account.name
end
如果您想避免N + 1问题,您应该使用preload或include来预先缓存帐户对象。