elasticsearch-railsのgemを使用しています。
以下message_search_conditionsテーブルです。
id | message_room_id | user_id | created_at |
---|---|---|---|
1 | 3 | 2 | 2018-07-01 15:02:11 |
2 | 2 | 4 | 2018-07-02 15:02:11 |
3 | 3 | 4 | 2018-07-03 15:02:11 |
4 | 1 | 3 | 2018-07-04 15:02:11 |
5 | 1 | 1 | 2018-07-05 15:02:11 |
6 | 4 | 1 | 2018-07-06 15:02:11 |
ruby
1class Message < ApplicationRecord 2 include Elasticsearch::Model 3 include Elasticsearch::Model::Callbacks 4end
ruby
1class MessagesController < ApplicationController 2 def index 3 search_results = Message.search({"query": {"match_all": {}}}).records 4 message_params = search_results.order(created_at: :desc) 5 @message_lists = search_results.group('message_room_id').from(message_params, :messages).order(created_at: :desc) 6 end 7end 8
なぜか最後の
ruby
1search_results.group('message_room_id').from(message_params, :messages).order(created_at: :desc)
で正しくorder(.order(message_id: :desc))されません。
なお、SQLは正しく走っていました。
なぜSQLが正しく走っているのに、@message_listsの結果はorder byされていないのか疑問です。
お手数ですが、ご回答のほどよろしくお願いします。
あなたの回答
tips
プレビュー