Ruby on rails rails记录推送
控制器.rbRuby on rails rails记录推送,ruby-on-rails,Ruby On Rails,控制器.rb @payments = PaymentDetail.joins(:project) 在视图文件@payments.count中等于550 当我像这样更换控制器时 @payments = PaymentDetail.joins(:project) @payment_errors = PaymentError.joins(:project) @payment_errors.each {|payment_error| @payments << payment_error}
@payments = PaymentDetail.joins(:project)
在视图文件@payments.count中等于550
当我像这样更换控制器时
@payments = PaymentDetail.joins(:project)
@payment_errors = PaymentError.joins(:project)
@payment_errors.each {|payment_error| @payments << payment_error}
@payments=PaymentDetail.join(:项目)
@payment\u errors=PaymentError.joins(:项目)
@付款错误。每个{付款错误}@payments都是由于延迟加载
PaymentDetail.joins(:project)
这不会立即加载付款。而是在您开始访问付款时立即加载付款(例如,在每个
循环中)。您可以通过将结果强制加载到数组。请尝试以下操作:
@payments = PaymentDetail.joins(:project).to_a
@payment_errors = PaymentError.joins(:project).to_a
@payments += @payment_errors
或者,如果您不需要将@payment\u errors
作为单独的变量:
@payments = PaymentDetail.joins(:project).to_a + PaymentError.joins(:project).to_a
您正试图将PaymentError
数据添加到PaymentDetail
表中,这是错误的。如果您在数组中需要它,请使用添加到
您可以这样做:
@payments = PaymentDetail.joins(:project).to_a + PaymentError.joins(:project).to_a
使用将为阵列分页。在控制器中添加此行:
`require 'will_paginate/array'`
但是我想使用@payments和will_paginate gem,所以它必须是ActiveRecord::Relation而不是array。我也想订购它。谢谢你的分享