Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 来自SQL查询的Rails 6上拉计数_Ruby On Rails_Psql - Fatal编程技术网

Ruby on rails 来自SQL查询的Rails 6上拉计数

Ruby on rails 来自SQL查询的Rails 6上拉计数,ruby-on-rails,psql,Ruby On Rails,Psql,我想统计所有未读的用户消息。为此,我使用以下查询: Conversation.joins(:messages) .select('conversations.*', 'COUNT(messages.*) AS unread_message_count') .where(sendable: current_user, messages: { read: false }) .group(:id) 这给了我一个ActiveRec

我想统计所有未读的用户消息。为此,我使用以下查询:

Conversation.joins(:messages)
            .select('conversations.*', 'COUNT(messages.*) AS unread_message_count')
            .where(sendable: current_user, messages: { read: false })
            .group(:id)
这给了我一个ActiveRecord::关系,而不是未读消息的数量。如果我在末尾添加
.count

Conversation.joins(:messages)
            .select('conversations.*', 'COUNT(messages.*) AS unread_message_count')
            .where(sendable: current_user, messages: { read: false })
            .group(:id).count
我得到一个错误:

ActiveRecord::StatementInvalid(PG::SyntaxError:ERROR:语法错误位于或接近“AS”) 第1行:选择计数(对话),计数(消息)为未读内容


查询消息表而不是对话怎么样?->
Message.joins(:conversation).where(对话:{sendable:current_user}).where(读:false).count
我做了很多不必要的思考,@SampatBadhe
Message.joins(:conversation).where(读:false,对话:{sendable:current_user}).where.not(可留言:当前用户)。计数是我想要的-谢谢你的提示。