Delegated Types - how do you manage validations?

Consider this link: ActiveRecord::DelegatedType

Here is the standard example - but note that Comments require the presence of content - without which validation should fail:


# Schema: entries[ id, account_id, creator_id, created_at, updated_at, entryable_type, entryable_id ]
class Entry < ApplicationRecord
  belongs_to :account
  belongs_to :creator
  delegated_type :entryable, types: %w[ Message Comment ]
end

module Entryable
  extend ActiveSupport::Concern

  included do
    has_one :entry, as: :entryable, touch: true
  end
end

# Schema: messages[ id, subject, body ]
class Message < ApplicationRecord
  include Entryable
end

# Schema: comments[ id, content ]
class Comment < ApplicationRecord
  include Entryable
  validates_presence_of :content
end

Now if I tried to create a comment without any content - this seems to work perfectly fine!

Entry.create entryable: Comment.new(), creator: Current.user
# works fine!

I would expect validation to fail. Was wondering how you all manage validation when you are using delegated types. Probably, different types might have different validation rules.

Any pointers would be much appreciated.

I was thinking of doing something like this:

class Entry < ApplicationRecord
  # etc.
  validates_associated :entryable
end