module DescriptionListHelper def description_list_pair(term, definition, append: nil) tags = [ content_tag(:dt, "#{term}#{append}"), content_tag(:dd, definition), ] safe_join(tags) end def description_list_pair_for(record, attribute, append: nil, custom_label: nil) term = custom_label.nil? ? translation_for(record, attribute) : custom_label definition = record.send(attribute) description_list_pair(term, definition, append: append) end private def translation_for(record, attribute) record.class.human_attribute_name(attribute).titleize end end