如何在 Rails 中突出显示搜索到的单词

How can I highlight searched words in Rails?

本文关键字:搜索 显示 单词 Rails      更新时间:2023-09-26

我已经环顾四周一段时间了,但我似乎找不到一种广受欢迎的、强大的方法来实现这一目标。

基本上,当用户在我的网页上搜索某些内容时,例如ADDM,然后当页面重新加载以显示搜索结果时,我希望每个包含字母ADDM的条目都突出显示(甚至只是粗体)。

由于您要重新加载页面,这意味着视图将被重新呈现,因此您可以使用视图中的highlight帮助程序将搜索的文本包装在 HTML 元素中。然后,您可以为这些元素设置特定的样式。例如,假设您有一个search#show操作,您将搜索文本存储在paramssearch键中,您可以这样做:

# app/views/search/show.html.haml
- @results.each do |result|
  .result
    = highlight result.description, params[:search]

您可以为mark元素(由帮助程序生成)设置一些 CSS 来根据需要设置它们的样式,例如:

mark {
  font-weight: bold;
  background: #EFEFEF;
}