Rails 3, Kaminari — ошибка с :joins при использовании paginate

У меня есть функция для цен с двумя соединениями, и она отлично работает, когда я использую ее для запроса цен. Но теперь, когда я добавил Kaminari, чтобы иметь возможность разбивки на страницы, это выдало мне ошибку, и мне интересно, могу ли я настроить функцию «счет*» в Kaminari или это моя функция для вызова продуктов, которая неверна?

Это в моем контроллере

 @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)

Когда я называю продукты без Kaminari, 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) 

Заранее спасибо!


person Philip    schedule 31.03.2011    source источник


Ответы (2)


Если возникает неоднозначная ошибка, попробуйте использовать явный синтаксис для розничного_идентификатора.

например розничные продавцы.retailer_id , profiles.retailer_id , цены.retailer_id.

луч

person ray    schedule 11.04.2011
comment
Привет, Рэй, спасибо за ответ, но как мне это сделать? Я имею в виду, я не знаю, откуда берется ритейлер_ид КАК ритейлер_ид? Откуда я знаю, что я не сказал ему сделать это? - person Philip; 14.04.2011

:retailer дублируется внутри вашего предложения соединения. Измените параметры присоединения на

.joins(:магазин => :профиль)

person Akira Matsuda    schedule 05.05.2011