mysql - Rails 3,Kaminari - :joins when using paginate 错误

标签 mysql ruby-on-rails-3 pagination kaminari

我有一个带有 2 个连接的价格函数,当我用它来查询价格时,它工作得很好而且很漂亮。但是现在当我添加 Kaminari 以能够分页时,它给了我一个错误,我想知道我是否可以在 Kaminari 中自定义“count*”函数,或者是我调用错误的产品的函数?

这是在我的 Controller 中

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

提前致谢!

最佳答案

如果出现不明确的错误,则尝试使用 retailer_id 的显式语法。

例如零售商.retailer_id , 配置文件.retailer_id , prices.retailer_id。

光线

关于mysql - Rails 3,Kaminari - :joins when using paginate 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5506523/

相关文章:

通过 SSH 隧道连接到 Namecheap 的 MySQL 数据库的 Python 脚本

ruby-on-rails - Rescue - NoMethodError -- 铜管类的未定义方法日志

ruby-on-rails - 新手问题 : Class and instance methods in Ruby on Rails

ruby-on-rails-3 - 从要由 ffmpeg 在 rails 3 上转换的视频的路径中删除空间

java - 如何计算通用 JPA DAO 中 JPA 2 CriteriaQuery 的行数?

java - 当您滚动超过某个点时, Swing 滚动 Pane 会发出通知

MySQL同时对两个表进行计数

php - 错误号 : 150 "Foreign key constraint is incorrectly formed" how can i fix this?

MySQL 查询从数据库表中获取列名的计数?

python - 如何在 django-tables2 中使用基于类的 View 控制分页?