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 に答える