0

嗨,我正在创建一个标签系统,当用户输入时,我希望结果在与用户输入的字符匹配的地方加粗

我的标签被渲染的地方在这里......

@tags = Tag.order(:name).where("name like ?", "%#{params[:term]}%")
render json: @tags.map{ |tag| {:label => "#{tag.name} x #{tag.count}", :value => tag.name} }

用户输入的内容可以从 params[:term] 中获取。是否有一个匹配功能可以在用户键入时将相应的字符加粗?

谢谢

4

1 回答 1

4

控制器不是使用响应体进行操作的最佳场所。但是,您可以这样做:

  1. 放入include ActionView::Helpers::TextHelper您的控制器类。
  2. 在您的操作中使用highlight助手。

像这儿:

s = highlight('Ruby on Rails', 'rails', :highlighter => '<strong>\1</strong>')
# => "Ruby on <strong>Rails</strong>"
于 2012-04-25T19:38:32.703 回答