Ruby on rails 如何实施';搜索功能';适用于邮箱';每个盒子都是什么
现在我正在使用一个名为“mailboxer”的gem作为消息传递系统。Ruby on rails 如何实施';搜索功能';适用于邮箱';每个盒子都是什么,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,Activerecord,现在我正在使用一个名为“mailboxer”的gem作为消息传递系统。 我想为收件箱、sentbox和垃圾箱实现“关键字搜索功能” 如果我不关心搜索关键字,那么通过这样的编码就可以毫无问题地获取结果 inbox... @messages = current_user.mailbox.inbox.page(params[:page]).per(10) sentbox... @messages = current_user.mailbox.sentbox.page(params[:page]).
我想为收件箱、sentbox和垃圾箱实现“关键字搜索功能” 如果我不关心搜索关键字,那么通过这样的编码就可以毫无问题地获取结果
inbox... @messages = current_user.mailbox.inbox.page(params[:page]).per(10)
sentbox... @messages = current_user.mailbox.sentbox.page(params[:page]).per(10)
trash... @messages = current_user.mailbox.trash.page(params[:page]).per(10)
但有时我想用搜索关键字过滤结果。假设这次搜索关键字为“test”,则结果应仅为通知表中正文属性中包含“test”的记录。
我怎样才能做到这一点,如收件箱,sentbox和垃圾箱 我试过了,但根本没用:(
解决方案是对Mailboxer::Receive和Mailboxer::Models::Messageable模块进行修补,以支持按框类型进行搜索:
class Mailboxer::Receipt < ActiveRecord::Base
...
if Mailboxer.search_enabled
searchable do
text :subject, :boost => 5 do
message.subject if message
end
text :body do
message.body if message
end
integer :receiver_id
# Add mailbox_type to sunspot search field
string :mailbox_type
boolean :trashed
boolean :deleted
end
end
end
这样,在控制器中,您就可以简单地使用新定义的方法来执行框类型搜索
current_user.search_inbox_messages(query[:keywords])
current_user.search_sentbox_messages(query[:keywords])
current_user.search_trash_messages(query[:keywords])
重要提示:请确保在添加新搜索字段后重新生成Solr索引,否则不会显示任何内容:
bundle exec rake sunspot:solr:reindex
希望这有帮助!解决方案是对Mailboxer::Receive和Mailboxer::Models::Messageable模块进行修补,以启用按框类型搜索:
class Mailboxer::Receipt < ActiveRecord::Base
...
if Mailboxer.search_enabled
searchable do
text :subject, :boost => 5 do
message.subject if message
end
text :body do
message.body if message
end
integer :receiver_id
# Add mailbox_type to sunspot search field
string :mailbox_type
boolean :trashed
boolean :deleted
end
end
end
这样,在控制器中,您就可以简单地使用新定义的方法来执行框类型搜索
current_user.search_inbox_messages(query[:keywords])
current_user.search_sentbox_messages(query[:keywords])
current_user.search_trash_messages(query[:keywords])
重要提示:请确保在添加新搜索字段后重新生成Solr索引,否则不会显示任何内容:
bundle exec rake sunspot:solr:reindex
希望这有帮助!如果是,请让我知道您是否实现了搜索功能,因为我必须实现相同的功能。我遵循了github,但它不起作用……如果是,请让我知道您是否实现了搜索功能,因为我必须实现相同的功能。我遵循了github,但它不起作用不起作用。。。。