# File actiontext/app/helpers/action_text/tag_helper.rb, line 24
def rich_text_area_tag(name, value = nil, options = {})
options = options.symbolize_keys
form = options.delete(:form)
options[:input] ||= "trix_input_#{ActionText::TagHelper.id += 1}"
options[:class] ||= "trix-content"
options[:data] ||= {}
options[:data][:direct_upload_url] ||= main_app.rails_direct_uploads_url
options[:data][:blob_url_template] ||= main_app.rails_service_blob_url(":signed_id", ":filename")
class_with_attachment = "ActionText::RichText#embeds"
options[:data][:direct_upload_attachment_name] ||= class_with_attachment
options[:data][:direct_upload_token] = ActiveStorage::DirectUploadToken.generate_direct_upload_token(
class_with_attachment,
ActiveStorage::Blob.service.name,
session
)
editor_tag = content_tag("trix-editor", "", options)
input_tag = hidden_field_tag(name, value.try(:to_trix_html) || value, id: options[:input], form: form)
input_tag + editor_tag
end Returns a trix-editor tag that instantiates the Trix JavaScript editor as well as a hidden field that Trix will write to on changes, so the content will be sent on form submissions.
:class - Defaults to “trix-content” so that default styles will be applied. Setting this to a different value will prevent default styles from being applied.
[:data][:direct_upload_url] - Defaults to rails_direct_uploads_url.
[:data][:blob_url_template] - Defaults to rails_service_blob_url(":signed_id", ":filename").
rich_text_area_tag "content", message.content # <input type="hidden" name="content" id="trix_input_post_1"> # <trix-editor id="content" input="trix_input_post_1" class="trix-content" ...></trix-editor>
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.