自作のTodoAppの記事内にURLを貼ってそれをurlと認識して欲しい!!!
と思い調べると、
[Ruby][Rails]テキスト内のURLをaタグに書き換える - Qiita
ふむふむ
難しいな・・
ruby on rails - Railsでユーザーが投稿したテキストにURLがあればリンクとして表示した時のXSS対策について - スタック・オーバーフロー
gemが存在するみたい!!!
これやあああ!!!
simple_formatとrails_autolinkを掛け合わせて使うと便利 - Qiita
rails_autolink
rails_autolink
のgithubは不親切設計。
-> https://github.com/tenderlove/rails_autolink
どうやら元々は標準機能だったらしい。けどちょっと前にgemとして切り離されてしょげてるみたい・・
とりあえず
gem 'rails_autolink'
bundle
それでえーーーっと
説明ザツゥ・・
みたところhttp
から始まる塊をURLとして認識して、aタグを付けてくれるっぽい!(知らんけど)
とりあえず真似してみる
[ 一覧ページ ]
= auto_link(@task.description)
できた
あんなザツな説明でトウシロウの私でもできた。
と思ったら
URLと文字がくっついちゃってるっっっっぜ!
これは、半角スペースで直りました。 くっ付けるとダメみたい
では、なぜsimple_format
と組み合わせるのか
simple_format
これはgemとかでなく、railsのヘルパーメソッドらしいです!
公式ドキュメントはなんか入場規制かかってました。
なので、とっってもわかりやすかったこの記事から少し拝借
Railsヘルパーメソッド「simple_format」の使い方 - Qiita
simple_format
の機能
文字列を
<p>
で囲む改行には
<br />
を付与連続した改行については、
</p><p>
を付与
必要性を感じない・・・
大事なのはオプションの方っぽい!
Railsヘルパーメソッド「simple_format」の使い方 - Qiita
(神記事をスクリーンショット)
ん?
こっちです!
Railsヘルパーメソッド「simple_format」の使い方 - Qiita
(神記事をスクリーンショット)
最後にちょろっと書いてありました!これは超大事!!(多分)
最終的なコード
= auto_link(simple_format(h(@task.description), html: { target: '_blank' }))
別タブで開きたいなーと思ってhtml: { target: '_blank' }
も付けました!
これは、なぜか機能していません!!!
link_to用のではダメなのかsimple_format
よ!
答えてくれええ!