我遇到了Rails 5中HAVING子句的問題。 我爲給定模型提取所有價格,然後抽取具有提供的Sku_ids的所有佈置。 然後,我將每個排列中找到的sku_ids與每個排列中的總skus進行比較。如果他們相等,然後我將它們添加到我的ModelConfig 我試圖找到只包含所有SKU的安排。有子句軌道內的訪問ID
問題在於having子句。我需要引用arrangement.id來查找有多少Skus在這種安排中,但是rails一直在拋出一個未定義錯誤的方法。
任何幫助將不勝感激。
錯誤中突出顯示的行是Arrangement.find(arrangement_id).sku_configs.count 我無法理解的問題是爲什麼當在.having(count(arrangement_id)=?中使用arrange_id時,它不是'數據
謝謝
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
:噸能夠在Arrangement.find(arrangement_id)
NameError在ModelConfigsController#發生器>未定義局部變量或方法`arrangement_id」爲#結構> ModelConfigJob數據=使用
您能粘貼錯誤信息嗎? – ulferts
這就是代碼的樣子。 @ possible_arrangements.having(「count(arrangement_id)=?」,Arrangement.find(arrangement_id).sku_configs.count).each 突出顯示的行是Arrangement.find(arrangement_id).sku_configs.count 問題我是唔明就是爲什麼當arrangement_id在.having(計數(arrangement_id)是用來=?,它不能在Arrangement.find(arrangement_id) ** NameError在ModelConfigsController#發電機** >未定義使用局部變量或方法'arrangement_id'爲#結構 > ModelConfigJob data =:data –