Controller.rb轨道记录推
@payments = PaymentDetail.joins(:project)
在视图文件@ payments.count等于550
file @ payments.count等于550,而它必须是([email protected]_errors.count)
为什么我不能将@payment_error记录推入@payments?
Controller.rb轨道记录推
@payments = PaymentDetail.joins(:project)
在视图文件@ payments.count等于550
file @ payments.count等于550,而它必须是([email protected]_errors.count)
为什么我不能将@payment_error记录推入@payments?
您正在尝试PaymentError
数据添加到PaymentDetail
表这是不对的。如果您在阵列中使用它,请使用to_a
。
你可以这样做:
@payments = PaymentDetail.joins(:project).to_a + PaymentError.joins(:project).to_a
要为阵列使用will_paginate
。在你的控制器中加入这一行:
`require 'will_paginate/array'`
这是因为延迟加载。
PaymentDetail.joins(:project)
这不会立即加载付款。相反,只要开始访问付款,付款就会被加载(例如,在each
循环中)。您可以通过将结果转换为数组来强制加载。试试这个:
@payments = PaymentDetail.joins(:project).to_a
@payment_errors = PaymentError.joins(:project).to_a
@payments += @payment_errors
或者,如果你不需要@payment_errors
作为单独的变种:
@payments = PaymentDetail.joins(:project).to_a + PaymentError.joins(:project).to_a
但我想用@payments与will_paginate gem是那么它必须是的ActiveRecord ::关系不array.I想也订购。 – 2013-02-12 03:29:02
那么,我不知道。 – 2013-02-12 03:30:52
感谢您的分享 – 2013-02-12 03:34:11