我试图用Ransack中的sort_link对表中的值进行排序。我找到了an example,它真的很有用。但是,我想我对“distinct”有问题。我得到了这个错误'ORDER-BY表达式必须出现在SELECT列表中;DISTINCT‘。我的代码如下所示:
q =user.joins(:buyer).order('users.name')
ransack = params["filter"]
@search = q.search(ransack)
@users = @search.result(:distinct=>true)我是不是忘了什么?提前感谢!
发布于 2015-09-29 11:26:23
根据this issue,您可以使用ActiveRecord joins查询或select查询来添加所需的列来解决此问题,例如:
q = user.order('users.name')
ransack = params["filter"]
@search = q.search(ransack).
result(:distinct=>true).
joins(:buyer).
includes(:buyer)
@users = @search.all发布于 2013-12-13 06:57:22
你有distinct as true。Ransack在Postgresql中以错误的方式调用distinct值,这是你得到这个错误的原因。如果你使用另一个数据库,你很可能不会。
因此,如果您设置distinct false,您将不会得到这个错误。如果你想知道为什么你需要distinct,请查看:
http://www.w3schools.com/sql/sql_distinct.asp如果我需要的话,我正在尝试找到一种方法来包含distinct。当我发现的时候,我会编辑这个答案。
https://stackoverflow.com/questions/19910574
复制相似问题