2011-03-31 11 views
1

我有一個帶有2個連接的價格函數,當它用於調用價格時,它工作正常,並且很漂亮。但是現在,當我添加Kaminari來分頁時,它給了我一個錯誤,我不知道我是否可以在Kaminari中定製「count *」函數,還是我調用錯誤產品的函數?Rails 3,Kaminari - 錯誤:使用paginate時加入

這是在我的控制器

@prices = Price.select("`prices`.*").joins(:retailer, :retailer => :profile). 
     where(['product_id=? AND size_id=?', params[:prod_id], params[:si_id]]). 
     group(:retailer_id).order("SUM((prices.price * #{params[:amount].to_i}) + profiles.shippingCost)").page(params[:page]) 

錯誤代碼:

Mysql2::Error: Column 'retailer_id' in field list is ambiguous: SELECT COUNT(*) AS count_all, retailer_id AS retailer_id FROM `prices` INNER JOIN `retailers` ON `retailers`.`id` = `prices`.`retailer_id` INNER JOIN `profiles` ON `profiles`.`retailer_id` = `retailers`.`id` WHERE (product_id='1' AND size_id='3') GROUP BY retailer_id,retailer_id ORDER BY SUM((prices.price * 1) + profiles.shippingCost) 

當我叫產品無雷的MYSQL看起來是這樣的。

SELECT `prices`.* FROM `prices` INNER JOIN `retailers` ON `retailers`.`id` = `prices`.`retailer_id` INNER JOIN `profiles` ON `profiles`.`retailer_id` = `retailers`.`id` WHERE (product_id='1' AND size_id='3') GROUP BY retailer_id ORDER BY SUM((prices.price * 1) + profiles.shippingCost) 

在此先感謝!

回答

0

如果含糊不清的錯誤,然後嘗試爲retailer_id顯式語法。

例如retailers.retailer_id, profiles.retailer_id, prices.retailer_id。

ray

+0

雷您好,感謝您的回覆,但我怎麼做呢?我的意思是,我不知道「retailer_id AS retailer_id」來自哪裏?據我所知,我沒有告訴它這樣做? – Philip 2011-04-14 09:28:45

0

:零售商被複制到您的聯接條款中。 請改變你的加入PARAMS到

.joins(:零售商=>:配置文件)