Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 如何实施';搜索功能';适用于邮箱';轨道上的宝石_Ruby On Rails_Mailboxer - Fatal编程技术网

Ruby on rails 如何实施';搜索功能';适用于邮箱';轨道上的宝石

Ruby on rails 如何实施';搜索功能';适用于邮箱';轨道上的宝石,ruby-on-rails,mailboxer,Ruby On Rails,Mailboxer,现在我正在使用一个名为“mailboxer”的gem作为消息传递系统。 我想实现“关键字搜索功能”,我应该能够搜索对话和邮件的我的邮箱,无论是从收件箱,sentbox,垃圾箱或草稿 然而,这个gem给出了一个函数 搜索信息(查询) ,但它似乎不起作用。这里有一个方法来检索主题、正文或收件人/发件人的用户名包含给定字符串的所有对话。您可以稍微调整它以适应您的场景,或者在他们的github回购协议上打开一个问题 def conversations_for(query) wildcarded_qu

现在我正在使用一个名为“mailboxer”的gem作为消息传递系统。 我想实现“关键字搜索功能”,我应该能够搜索对话和邮件的我的邮箱,无论是从收件箱,sentbox,垃圾箱或草稿

然而,这个gem给出了一个函数

搜索信息(查询)

,但它似乎不起作用。

这里有一个方法来检索主题、正文或收件人/发件人的用户名包含给定字符串的所有对话。您可以稍微调整它以适应您的场景,或者在他们的github回购协议上打开一个问题

def conversations_for(query)
  wildcarded_query = "%#{query}%"
  user_ids = User.where('CONCAT(first_name, " ", last_name) LIKE :query', query: wildcarded_query).pluck(:id)
  current_user.mailbox.conversations.
                       joins(:messages).
                       references('mailboxer_conversations, mailboxer_notifications, mailboxer_receipts, messages_mailboxer_conversations, mr, mn'). # To get rid of warnings
                       select('mailboxer_conversations.*, mailbox_type, trashed').
                       where("mailboxer_notifications.subject LIKE :query
                              OR mailboxer_notifications.body LIKE :query
                              OR mailboxer_notifications.sender_id IN (:user_ids)
                              OR EXISTS ( SELECT * FROM mailboxer_receipts mr
                                                   INNER JOIN mailboxer_notifications mn ON mn.id = mr.notification_id
                                                   WHERE mn.conversation_id = mailboxer_conversations.id
                                                   AND mr.notification_id IN ( SELECT id FROM mailboxer_notifications
                                                                                           WHERE sender_id = :current_user_id )
                                                   AND mr.receiver_id IN (:user_ids))",
                              query: wildcarded_query, user_ids: user_ids, current_user_id: current_user.id)
end

你说它不起作用是什么意思?怎么了?你是如何使用它的?你的确切问题是什么?hi@vijoc实际上,当我使用该函数时,比如我得到了未定义方法“search”的错误,前当前用户。search_messages('test mail'),这里是“test mail”,我作为该函数的查询传递。