Ruby on rails 轨道选择和排序

Ruby on rails 轨道选择和排序,ruby-on-rails,associations,Ruby On Rails,Associations,我试图从协会中选择一个列计数,但它似乎不起作用。这是我的密码: 我努力实现的目标是: 我想按购买数量订购。假设这是我的付款通知表: 项目|标识|项目类型 2 |“付款” 2 |“付款” 6 |“付款” 2 |“付款” 3 |“付款” 6 |“付款” 无|“撤回” 顺序如下: 2. 6. 三, 希望你能理解 提前感谢。您还应该在订单栏中包含itme\u id :order => 'item_id,number_of_objects' 您还应将itme_id包含在订单块中 :order =&

我试图从协会中选择一个列计数,但它似乎不起作用。这是我的密码:

我努力实现的目标是: 我想按购买数量订购。假设这是我的付款通知表:

项目|标识|项目类型

2 |“付款”

2 |“付款”

6 |“付款”

2 |“付款”

3 |“付款”

6 |“付款”

无|“撤回”

顺序如下: 2. 6. 三,

希望你能理解


提前感谢。

您还应该在订单栏中包含itme\u id

:order => 'item_id,number_of_objects'

您还应将itme_id包含在订单块中

:order => 'item_id,number_of_objects'

首先,您应该使用普通方法而不是范围,因为查询相当复杂,结果将完全相同(只是更容易格式化)

其次,我不知道为什么在lambda中有一个参数“order_syntax”,而您在任何地方都没有使用它

下面是我的建议(使用新的活动记录链接语法)。我还没有测试它,但是如果我理解了您最初的查询,它应该可以工作

def search(term)
  select("*, COUNT(payment_notifications.p_type) AS number_of_objects").
    where('items.title LIKE ? OR items.desc LIKE ? OR taggings.context LIKE ?', "%#{term}%", "%#{term}%", "%#{term}%").
      includes(:taggings, :payment_notifications, :user).
        order('number_of_objects')
end

首先,您应该使用普通方法而不是范围,因为查询相当复杂,结果将完全相同(只是更容易格式化)

其次,我不知道为什么在lambda中有一个参数“order_syntax”,而您在任何地方都没有使用它

下面是我的建议(使用新的活动记录链接语法)。我还没有测试它,但是如果我理解了您最初的查询,它应该可以工作

def search(term)
  select("*, COUNT(payment_notifications.p_type) AS number_of_objects").
    where('items.title LIKE ? OR items.desc LIKE ? OR taggings.context LIKE ?', "%#{term}%", "%#{term}%", "%#{term}%").
      includes(:taggings, :payment_notifications, :user).
        order('number_of_objects')
end

找到了我的解决办法。需要使用计数器缓存。谢谢大家

找到了我的解决方案。需要使用计数器缓存。谢谢大家

什么不起作用?另外,您是在Rails 2还是Rails 3上。它给出了一个错误“未知列数\u的\u对象”。我想我需要一个全新的代码,因为我认为我的代码甚至不能满足我的需要。什么不起作用?另外,您是在Rails 2还是Rails 3上。它给出了一个错误“未知列数\u的\u对象”。我想我需要一个全新的代码,因为我认为我的代码根本不能满足我的需要。代码不起作用,我想我需要一个全新的代码,因为我的代码根本不能满足我的需要。代码不起作用,我想我需要一个全新的代码,因为我的代码甚至不能满足我的需要。同样的错误:SQLite3::SQLException:没有这样的列:对象的数量:选择不同的“项目”。id从“项目”左外部加入“标记”上的“标记”。“标记id”=“项目”。“id”和“标记”。“标记类型”=“项目”左外部加入“付款通知”“付款通知”。“项目id”=“项目”。“id”在“用户”上左外连接“用户”。“id”=“项目”。“用户id”中的“项目”。“可见”=“t”和(类似“%”的items.title或类似“%”的items.desc或类似“%”的taggings.context)按对象数量的顺序限制10个偏移量0相同错误:SQLite3::SQLException:无此类列:对象数量:选择不同的“项目”。id从“项目”左侧外部加入“标记”,在“标记”上加入“标记”。“标记id”=“项目”。“id”和“标记”。“标记类型”=“项目”左侧外部加入“付款通知”。“项目id”=“items“.id”在“users”上左外部联接“users”。“id”=“items”。“user\u id”中的“items”。“visible”=“t”和(items.title类似“%”或items.desc类似“%”或taggings.context类似“%”)按对象数量排序限制偏移量为10 0