has_rich_textを使う
使用したいモデル名に対して「has_rich_text」を宣言します。これだけでモデルに対してリッチテキストを持たせることが可能です。非常に簡単ですよね。
1 2 3 |
class モデル名 < ApplicationRecord has_rich_text :content end |
リッチテキストのモデルを取得
1 |
変数 = モデル名.create!(content: "<p>Hello,World</p>") |
リッチテキストモデルからHTMLを取得
1 2 3 |
[26] pry(main)> モデル名.content.to_s Rendered vendor/bundle/gems/actiontext-6.0.0/app/views/action_text/content/_layout.html.erb (Duration: 2.3ms | Allocations: 253) => "<div class=\"trix-content\">\n <p>Hello,World</p>\n</div>\n" |
リッチテキストモデルからプレインテキスト(人間が読める文字列)を取得
1 2 |
[28] pry(main)> モデル名.content.to_plain_text => "Hello,World" |
リッチテキストを画面で使うには?
Strong Parameterを設定する。
Strong Parameterに今回リッチテキストで使用しているカラムである「content」を追加します。
1 2 3 |
def モデル名_params params.require(:モデル名).permit(:カラム名, :content) end |
ビュー側でリッチテキストエディタの定義をする。
登録画面
rich_text_areaというヘルパーを使えば実装が可能です。これがTrixエディタというエディタになります。
1 2 3 |
<div class="field"> <%= form.rich_text_area :content %> </div> |
詳細画面
下記のように記述します。
1 2 3 4 |
<p> <strong>Content:</strong> <%= @モデル名.content %> </p> |
この記事へのコメントはありません。