simple_formatを使ったら改行できた!
やったぜ!
また一つ完成に近づいた!
前回の記事に書いた、textareaで書いた文章が改行されない問題解決しました!
railsには予めsimple_formatというヘルパーメソッドが用意されていて、これを出力したいHTMLに埋め込むだけ!
埋め込む場所がちょっと最初分からなかったけど、色々試してみたら出来た!
仕組みはよく分かっていない…w
まず、私の場合は新規投稿するためのページと、ブログなので一覧のページがあります。
このヘルパーメソッドを埋め込む場所が最初はtextarea内に埋め込むのかな?と思ったのですが違いました。
<!-- 一部抜粋 --> <textarea name="body" placeholder="本文"><%= simple_format(@post.body) %></textarea>
これでいいのかな?
と思ったのですが、このtextareaに挟まれてる@post.body
は投稿をミスした場合のrender用のデフォルト値です。
一体これとsimple_formatとやらがどう働くんだろう?って事でとりあえず試してみました。
が、当然何も起きません。
しかし、投稿画面のtextarea内に<p></p>
というタグがデフォルトで表示されていました。
placeholderがあるのに”本文”という文字列は消えていました。
このPタグの間に文字書けば改行されるのかな?と、試してみたけどPタグも文字列としてそのまま出力されるだけでした。
んで、次に試してみたのが一覧の方のページのタグにこのヘルパーメソッドを埋め込む方法です。
この方法がどうやら正解でした。
<!-- 一部抜粋 --> <% @posts.each do |post| %> <h1 class="post-title"><%= post.title %></h1> <p class="post"><%= simple_format(post.body) %></p> <span><%= post.created_at %></span> <% end %>
元々はpost.body
だけで本文を呼び出していたのですが、このpost.body
を引数にしてsimple_formatに渡したらちゃんと改行されて表示されました!
めっちゃ簡単!
あとは記事の詳細画面作って削除機能つければとりあえず終わりかな?
あ、あとログイン機能も作っておこうかないと誰でも投稿出来ちゃうな…
まぁあと少し!
デプロイで地獄を見る覚悟もしておかないと!
頑張るぞー。