2012-04-25 20 views
-1

喜即時創建一個標籤系統,當用戶類型,我想在那裏它們匹配用戶鍵入在紅寶石或鐵軌中是否有匹配粗體文本的函數?

在我的標籤得到呈現的人物,結果被加粗在這裏...

@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]中獲取。有沒有一種匹配功能可以在用戶輸入時加粗相應的字符?

謝謝

+1

這是一個網頁,在一個文本或富文本輸入?如果是這樣,這完全取決於在Web瀏覽器中運行的JavaScript,並且與在服務器上運行的Ruby或Ruby on Rails完全無關。 – Phrogz 2012-04-25 19:10:12

回答

4

控制器不是用響應主體進行操作的最佳位置。但是,您可以這樣做:

  1. include ActionView::Helpers::TextHelper放在您的控制器類中。
  2. 在你的動作中使用highlight助手。

喜歡這裏:

s = highlight('Ruby on Rails', 'rails', :highlighter => '<strong>\1</strong>') 
# => "Ruby on <strong>Rails</strong>" 
+0

謝謝你的回答=) – Sasha 2012-04-25 21:43:11