Usage With Rails

Prerequisites

Rhino Editor is designed to work with ActiveStorage + ActionText. So make sure both are installed and working in your app before pulling in Rhino Editor.

View Helpers

Currently, Rhino Editor does not ship any view helpers for Rails. This may change in the future to make usage easier, but for now we can mimic how Trix handles it.

Let’s imagine we had a model like the following:

class Post < ApplicationRecord
  has_rich_text :body
end

To achieve the same interaction as form.rich_text_area :body from Trix, we can do the following:

<%= form_with model: @post do |form| %>
  <%= form.hidden_field :body, value: form.object.body.try(:to_trix_html) || form.object.body %>
  <rhino-editor
    input="<%= form.field_id(:body) %>"
    data-blob-url-template="<%= rails_service_blob_url(":signed_id", ":filename") %>"
    data-direct-upload-url="<%= rails_direct_uploads_url %>"
  ></rhino-editor>
<% end %>

Which should output HTML that looks something like this:

<form>
  <input value="" autocomplete="off" type="hidden" name="post[body]" id="post_body">
  <rhino-editor
    input="post-body"
    data-blob-url-template="http://localhost:5100/rails/active_storage/blobs/redirect/:signed_id/:filename"
    data-direct-upload-url="http://localhost:5100/rails/active_storage/direct_uploads"
  ></rhino-editor>
</form>