Rails6がリリースされて結構時間たったのにも関わらずActionTextに触ったことがなかったので、ActionTextを試してみました.
環境構築
rubyは2.6.5
、railsは6.0.3.1
を使いました.
➜ ~ ruby -v ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin19] ➜ ~ rails -v Rails 6.0.3.1
$ rails new action_text_sample $ cd action_text_sample $ rails s
http//localhost:3000 にアクセスしてYay! You’re on Rails!となればOKです.
モデルやコントローラーを作る
モデルを作る
$ rails g model Post body:text $ rails db:migrate
コントローラーを作る
$ rails g controller posts index new create
class PostsController < ApplicationController def index @posts = Post.all end def new; end def create @post = Post.new(post_params) if @post.save redirect_to root_url else render "posts/index" end end private def post_params params.require(:post).permit(:body) end end
routingの設定をする
Rails.application.routes.draw do root to: "posts#index" resources :posts, only: [:new, :create] # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end
Viewを書く
<h1>Posts#index</h1> <%= render @posts %><%= form_with(model: Post.new, local:true) do |f| %> <%= f.rich_text_area :body %> <%= f.submit %> <% end %>
Action Textを使うので、text_area
ではなく、rich_text_area
になっています.
<div> <%= post.body %> </div>
Action Textに必要なテーブルやYarnパッケージを追加する
$ rails action_text:install $ rails db:migrate
Action Textの設定をmodelに追加する
class Post < ApplicationRecord has_rich_text :body # 追加 end
動作確認
サーバーを立ち上げるとよくみるUIができています.
$ rails s
適当に試してみるとこんな感じのテキストが作成ができます.