2021-11-05 FQDN / ActiveRecord::DelegatedType
FQDNとは?ドメイン名・ホスト名・IPアドレスとの違い
FQDN = Fully Qualified Domain Name = 完全修飾ドメイン名。
FQDN、ドメイン名、ホスト名がたまに混乱するので改めて整理。
ActiveRecord::DelegatedType | RailsDoc(β)
Rails 6.1 から導入された DelegatedType。
モデルの構成としては下記のようになる。
# 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
end