J'ai un problème avec la clause HAVING dans Rails 5. je tire tous les prix pour un modèle donné, puis tirer toutes les dispositions qui ont fourni Sku_ids. Ensuite, je compare les sku_ids trouvés par arrangement au skus total dans chaque arrangement. Si elles sont égales, alors je les ajoute à mon ModelConfig J'essaye de trouver seulement les arrangements qui contiennent TOUS les SKUs.id accès à l'intérieur HAVING rails
Le problème est lié à la clause having. J'ai besoin de référencer le arrangement.id pour trouver combien de Skus sont dans cet arrangement, mais les rails continuent à jeter une erreur non définie de méthode.
Toute aide serait grandement appréciée.
La ligne a mis en évidence l'erreur est Arrangement.find (arrangement_id) .sku_configs.count La question que je vais avoir du mal à comprendre pourquoi quand arrangement_id est utilisé dans .having (count (arrangement_id) =?, Il n » t pouvant être utilisé dans Arrangement.find (arrangement_id)
NameError dans ModelConfigsController # generator> variable locale non définie ou méthode `arrangement_id » pour # struct> ModelConfigJob données =: données
Merci,
Model.all.each do |model|
CoverGrade.all.each do |cover_grade|
@prices = Price.where(model_id: model.id).where(cover_grade_id: cover_grade.id).select(:sku_id)
@possible_arrangements = Arrangement.joins(:sku_configs).where('sku_configs.sku_id' => @prices).group('arrangements.id')
@actual_arrangements = []
@possible_arrangements.having("count(arrangement_id) = ?", Arrangement.find(arrangement_id).sku_configs.count do |pa|
@actual_arrangements << pa
end
if @actual_arrangements.present?
@actual_arrangements.each do |arrangement|
ModelConfig.create(model_id: model.id, cover_grade_id: cover_grade.id, arrangement_id: arrangement.id)
end
end
end
end
Pouvez-vous coller le message d'erreur, s'il vous plaît? – ulferts
Voici à quoi devrait ressembler le code. @ possible_arrangements.having ("count (arrangement_id) =?", Arrangement.find (arrangement_id) .sku_configs.count) .each La ligne en surbrillance est Arrangement.find (arrangement_id) .sku_configs.count Le problème avoir de la difficulté à comprendre, c'est pourquoi quand arrangement_id est utilisé dans .having (count (arrangement_id) =?, il ne peut pas être utilisé dans Arrangement.find (arrangement_id) ** NameError dans ModelConfigsController # generator ** > undefined variable locale ou méthode 'arrangement_id 'pour # struct > ModelConfigJob data =: data –