teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

補足を追加

2020/07/16 12:53

投稿

mingos
mingos

スコア4314

answer CHANGED
@@ -11,7 +11,7 @@
11
11
  # 検索キーワードを<em></em>で囲む => 置換する
12
12
  text.gsub!(keyword, '<em class="search">' + keyword + '</em>')
13
13
 
14
- => "<em>Ruby on Rails</em>(ルビーオンレイルズ)は、オープンソースのWebアプリケーションフレームワークである。RoRまたは単にRailsと呼ばれる。その名にも示されているようにRubyで書かれている。またModel View Controller(MVC)アーキテクチャに基づいて構築"
14
+ => "<em class=\"search\">Ruby on Rails</em>(ルビーオンレイルズ)は、オープンソースのWebアプリケーションフレームワークである。RoRまたは単にRailsと呼ばれる。その 名にも示されているようにRubyで書かれている。またModel View Controller(MVC)アーキテクチャに基づいて構築"
15
15
  ```
16
16
 
17
17
  * css
@@ -19,4 +19,25 @@
19
19
  em.search {
20
20
  任意のスタイルを定義
21
21
  }
22
+ ```
23
+
24
+ これを実際に使う場合は、ヘルパーにして使うと思います。
25
+
26
+ * app/helpers/application_helper.rb
27
+ ```ruby
28
+ module ApplicationHelper
29
+
30
+ def decorate_keyword(text, keyword)
31
+ # 引数のtextを変化させないようにgsub!ではなく、gsubを使う
32
+ # HTMLタグがエスケープされないようにhtml_safeで返す
33
+ reuslt = text.gsub(keyword, '<em class="search">' + keyword + '</em>')
34
+ result.html_safe
35
+ end
36
+
37
+ end
38
+ ```
39
+
40
+ * 検索結果のビュー?
41
+ ```ruby
42
+ <%= decorate_keyword("検索結果として表示する文字列", "検索キーワード") %>
22
43
  ```