Ruby on rails RoR:PSQL到ruby-.join

Ruby on rails RoR:PSQL到ruby-.join,ruby-on-rails,ruby,postgresql,join,psql,Ruby On Rails,Ruby,Postgresql,Join,Psql,我意识到这是一个有点初级的问题,但我站在一堵似乎无法逾越的墙前。我有一个朋友帮我写了这段Postgres代码,现在我正试图把它转换成ruby,我真的不知道该怎么做。我似乎找不到任何关于如何正确订购所有请求的文档 博士后: SELECT assets.id, count(assets_users.asset_id) as the_count FROM assets LEFT OUTER JOIN assets_users ON assets.id = assets_

我意识到这是一个有点初级的问题,但我站在一堵似乎无法逾越的墙前。我有一个朋友帮我写了这段Postgres代码,现在我正试图把它转换成ruby,我真的不知道该怎么做。我似乎找不到任何关于如何正确订购所有请求的文档

博士后:

SELECT
        assets.id,
        count(assets_users.asset_id) as the_count
FROM assets
LEFT OUTER JOIN assets_users ON assets.id = assets_users.asset_id
WHERE asset_profile_id = 7
GROUP BY assets.id
HAVING count(*) > 0
ORDER BY the_count;
红宝石:

编辑:

新的Ruby代码:

def order_assets
  @order = Asset.select("assets.id, count('assets_users.asset_id) as the_count")
                .joins("LEFT OUTER JOIN assets_users ON assets.id = assets_users.asset_id")
                .group("assets.id")
                .having("count(*) > 0").order("the_count")
end
我希望所有黄色的资产都在上面,而那些有用户的资产则在下面填写


以下是等效代码:-

@order = Asset.select("assets.id, count(assets_users.asset_id) as the_count")
              .joins("LEFT OUTER JOIN assets_users ON assets.id = assets_users.asset_id")
              .where("asset_profile_id = ?", current_asset_profile_id)
              .group("assets.id")
              .having("count(*) > 0")
              .order("the_count")

我如何让它完成所有这些,但是
资产配置文件\u id
是当前的,而不是指定?没有得到您。。你能说得更具体些吗?那么,与其说是
。where(asset\u profile\u id:7)
,不如说是如何设置我所在的当前
asset\u profile\u id
的位置。例如,
。其中(资产配置文件\u id:当前资产配置文件\u id)
。我是否必须删除
。where
?此代码似乎与Postgres代码的效果不同。知道为什么吗?让我们来看看。
@order = Asset.select("assets.id, count(assets_users.asset_id) as the_count")
              .joins("LEFT OUTER JOIN assets_users ON assets.id = assets_users.asset_id")
              .where("asset_profile_id = ?", current_asset_profile_id)
              .group("assets.id")
              .having("count(*) > 0")
              .order("the_count")