試してみたく ActionTextを使ってみました
こんな感じのシンプルなブログ投稿
環境
- Docker
- Ruby2.6.3
- Rails6.0.0
- Bootstra4
下準備
image_processing
gem 'image_processing'
これがないと画像が表示されませんでした
$ bundle install
action_text
$ rails action_text:install
以下は自動で入ってました。
/packs/application.js
require("trix")
require("@rails/actiontext")
Post modelの作成
カラムはtitleだけ
$ rails g model Post title:string
$ rails db:migrate
PostmodelとActionTextのtableが作成されます
/models/post.rb
class Post < ApplicationRecord
validates :title, presence: true
has_rich_text :content #こちらが必要
end
controllerとview
各controllerは省略します。
ストロングパラメータにcontentを追記
/controllers/posts_controller.rb
def post_params
params.require(:post).permit(:title, :content)
end
/views/posts/new.html.erb
<h2 class="text-center">新規投稿</h2>
<%= form_with model: @post, local:true do |form| %>
<div class="form-group">
<%= form.label :title %> <br />
<%= form.text_field :title, class: "form-control" %>
</div>
<div class="form-group">
<%= form.label :content %><br />
<%= form.rich_text_area :content %>
</div>
<hr>
<div class="form-label-group col-md-6 mx-auto">
<%= form.submit "登録", class: "btn btn-lg btn-primary btn-block" %>
</div>
<% end %>
雑感
ここまでの導入は簡単な印象です。
あとはActive StorageとS3の連携が必要になるかと思います。