Step by Step guide to test Rails ActiveText
Adrien Poly
Posted on October 4, 2018
๐งโ EDITED ActionText is now fully released in Rails 6 don't follow this guide that was written for the preview version
You might have seen the video of DHH about ActionText upcoming feature in Rails 6. This is a step by step guide for creating the exact same example as in the video.
โ ๏ธ If like me you never ran an edge version of Rails before and wonder how to do it then this is for you
Create a new app from the Edge version of Rails
Clone the Rails repo
git clone https://github.com/rails/rails.git
cd rails
bundle install
Create a new app with Rails Edge, YABE (YABE: Yet Another Blog Example)
We will want to create a new app within the same directory and using the locally installed Rails generator
#move out of rails folder first
cd ..
#create the app with the local rails generator and the edge flag to use GH master branch
rails/railties/exe/rails new yabe --edge
cd yabe
Start the app
โ ๏ธ remember to always use the local rails command: bin/rails
bin/rails s
Visit http://localhost:3000
You should now have the rails startup screen showing
Rails version: 6.0.0.alpha ๐๐
Installing ActionText
Add the ActionText gem (and image variants for active Storage):
# Gemfile
gem "actiontext", github: "rails/actiontext", require: "action_text"
gem "image_processing", "~> 1.2" # for Active Storage variants
Install gem, assets, npm dependency, and migrations
bundle install
bin/rails action_text:install
bin/rails db:migrate
Scaffold Post
bin/rails g scaffold post title:string
bin/rails db:migrate
Add a rich text field to Post
# app/models/post.rb
class Post < ApplicationRecord
has_rich_text :content
end
Active Text brings a polymorphic model under the hood for managing RichText
Add a field to your form
<%= form.rich_text_area :content %> : rich_text_area is the new content type to display Trix
<%#app/views/posts/_form.html.erb %>
<%= form_with(model: post) do |form| %>
โฆ
<div class="field">
<%= form.label :content %>
<%= form.rich_text_area :content %>
</div>
โฆ
<% end %>
finally, display the rich text on a page:
<%= @post.content %>
Update the strong params in PostsController
def post_params
params.require(:post).permit(:title, :content)
end
Start blogging
http://localhost:3000/posts
My 2 cents
- My first take out was to use an edge version of Rails.
- With regards to ActiveText I am impressed with how simple it is to now add rich text editing in a Rails app.
- I love Trix don't get me wrong but I would like to have a layer of abstraction to potentially have other front-end solution for the Editor.
Posted on October 4, 2018
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.