プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Ruby on Rails
  • 【Ruby on Rails】「Action Text」について
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Ruby on Rails】「Action Text」について

07.18

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

Action Textとは?

Rails6から登場した機能です。

インストール

1
rails action_text:install

インストールすると下記の記述が追加されます。

app/javascript/packs

1
2
require("trix")
require("@rails/actiontext")

trix

WYSIWYGを実現するリッチテキストエディタになります。

マイグレーションファイル

下記のようにActionTextを実装する上で必須の3つのテーブルが追加されます。下記のテーブルにWYSIWYGデータが格納されます。

  • active_storage_blobs
  • active_storage_attachments
    action_text_rich_texts

action_text_rich_texts

アクションテキストリッチテキストが格納されます。has_rich_textというメソッドによって自分たちが用意したデータ登録用のテーブルと紐づけることになります。

なお、通常の関連づけであれば関連づける先のテーブルの単数型にidをつけた(user_id等)が必要になるのですが、このテーブルの関連づけは下記2つのカラムの値で関連づけを動的に行っています。これにより複数の別のテーブルとの関連づけを少ないコードの記述で行うことが可能になるのです。これをポリモーフィックアソシエーションと呼びます。

1
2
    t.string "record_type", null: false
    t.bigint "record_id", null: false

active_storage_attachments

多:多の関連づけの仲介をするテーブルです。action_text_rich_textsテーブルとaction_storage_blobsのそれぞれに関連づいています。このテーブルもポリモーフィックアソシエーションで関連づいています。

active_storage_blobs

画像ファイル等のバイナリファイルを格納するテーブルです。

CSS

app/assets/stylesheetsに「actiontext.scss」というファイルが生成されて.trix-contentというtrixのクラスが使えるようになっています。

views

「app/views/active_storage/blobs」に「_blob.html.erb」が追加されます。Trixエディタでは画像をドラッグアンドドロップでレンダリングできますが、画像をレンダリングする際に使用されるerbになります。

image_processingの導入

actionTextを導入する際に必須となるGemパッケージとして「image_processing」があります。Gemfileを開いた際にコメントアウトされている下記の行のコメントを解除します。

1
2
# Use Active Storage variant
gem 'image_processing', '~> 1.2'

スポンサーリンク
  • 2020 07.18
  • miyabisan2
  • コメントを書く
  • Ruby on Rails
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2019 12.01

    【Rspec】Capybaraの構文まとめ

  2. 2020 11.18

    【Ruby on Rails】「devise」の基本クラスについて

  3. 2019 11.17

    【Ruby】日付や時刻を扱うクラス

  4. 2018 06.20

    【Ruby on Rails】ページごとに、読み込まれるCSSとJavaScriptを変えるには?(Rails5まで)

  5. 2020 07.18

    【Ruby on Rails】「ActionText」のリッチテキストを使う

  6. 2018 04.01

    【Webセキュリティ】XSS(クロスサイトスクリプティング)対策の基本(JavaやRails、breakmanなど)

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Ruby on Rails】環境変数に関する知識、d…

【Ruby on Rails】「ActionText」…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー