Merge pull request #35057 from javan/actiontext/blob-embeds-only

Fix error saving Action Text content containing non-blob attachables
This commit is contained in:
Javan Makhmali 2019-01-26 09:04:47 -05:00 committed by GitHub
commit d90593d0de
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 1 deletions

@ -15,7 +15,7 @@ class RichText < ActiveRecord::Base
has_many_attached :embeds
before_save do
self.embeds = body.attachments.map(&:attachable) if body.present?
self.embeds = body.attachables.grep(ActiveStorage::Blob) if body.present?
end
def to_plain_text

@ -35,6 +35,15 @@ class ActionText::ModelTest < ActiveSupport::TestCase
assert_equal "racecar.jpg", message.content.embeds.first.filename.to_s
end
test "embed extraction only extracts file attachments" do
remote_image_html = '<action-text-attachment content-type="image" url="http://example.com/cat.jpg"></action-text-attachment>'
blob = create_file_blob(filename: "racecar.jpg", content_type: "image/jpg")
content = ActionText::Content.new(remote_image_html).append_attachables(blob)
message = Message.create!(subject: "Greetings", content: content)
assert_equal [ActionText::Attachables::RemoteImage, ActiveStorage::Blob], message.content.body.attachables.map(&:class)
assert_equal [ActiveStorage::Attachment], message.content.embeds.map(&:class)
end
test "saving content" do
message = Message.create!(subject: "Greetings", content: "<h1>Hello world</h1>")
assert_equal "Hello world", message.content.to_plain_text