0
遇到我以前没有遇到的问题,并且似乎无法在任何地方找到解决方案,令人沮丧。基本上我有一个用户表,其中包含一个invited_by_id
列,引用相同的用户表。导轨 - 通过自我指示排序包括
现在我想创建一个查询它排序基础上,邀请用户名的成绩,但是使用通常的活动记录在这里整理并未真正发挥作用
User
.includes(:invited_by)
.order("users.name ASC")
因为无论是表有问题的是同一个,似乎铁轨选择第一个,而不是invite_by协会。
有没有什么方法可以指定我想要在关联上订购?
更多信息
我试图在一个活动记录混入使用这一点,所以我不会在基类中直接调用此,它需要与现有的范围,因为混合工作方法将在范围上调用。例如
User
.includes(:invited_by)
.where(where_clause)
.sort(:invited_by_name, :asc)
这里,sort
方法由混入提供,并且这是它需要能够在表之间进行区分。我有逻辑,这意味着它知道关系是什么,所以它知道:invited_by_name
是:invite_by关系的名称列,但是就我而言。
这是否与现有的范围工作?这将是一个混合内部链接,所以需要与现有的范围,而不是直接用户模型 – PaReeOhNos
嗯,不,我看不到它的工作,甚至想象如何尝试它。我刚刚用范围搜索了Arel,并没有看到任何可用的东西。有关于更改Arel节点的博客条目,但我不确定这对您有多大帮助... https://www.viget.com/articles/composable-sql-queries-in-rails-using-arel – SteveTurczyn
嗯没有这是我的问题:(将继续挖掘 – PaReeOhNos