<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/github---alexander-senko-magic-presenter-presentation-layer-for-rails-models-to-replace-draper-hrtfqroor" -->

---
title: GitHub - Alexander-Senko/magic-presenter: Presentation...
description: Magic Presenter is a Ruby gem providing a presenter layer for Rails models, built on Magic Decorator, positioned as an alternative to Draper. It offers...
canonical: https://daily.dev/posts/github---alexander-senko-magic-presenter-presentation-layer-for-rails-models-to-replace-draper-hrtfqroor
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: GitHub - Alexander-Senko/magic-presenter: Presentation layer for Rails models to replace Draper | daily.dev
og:description: Magic Presenter is a Ruby gem providing a presenter layer for Rails models, built on Magic Decorator, positioned as an alternative to Draper. It offers...
og:url: https://daily.dev/posts/github---alexander-senko-magic-presenter-presentation-layer-for-rails-models-to-replace-draper-hrtfqroor
og:image: https://api.daily.dev/og/posts/hRtfqrOoR.png
og:image:alt: GitHub - Alexander-Senko/magic-presenter: Presentation layer for Rails models to replace Draper
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub - Alexander-Senko/magic-presenter: Presentation layer for Rails models to replace Draper

**[Ruby Flow](https://daily.dev/sources/rubyflow)** · 5 min read · 0 upvotes · 0 comments

## Summary

Magic Presenter is a Ruby gem providing a presenter layer for Rails models, built on Magic Decorator, positioned as an alternative to Draper. It offers automatic presenter class inference based on model class names, view helper access within presenters, automatic decoration of objects passed to views, generators for creating presenters and their tests, and support for RSpec and Test::Unit testing. It integrates with ActiveModel::API so any Rails model is presentable by default.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://github.com/Alexander-Senko/magic-presenter>

## Questions this post answers

### What is a good alternative to Draper for implementing the presenter pattern in Rails?

Magic Presenter is a Ruby gem designed as an alternative to Draper for the presenter pattern in Rails. It is built on Magic Decorator, inherits from SimpleDelegator, supports automatic presenter class inference from model names, integrates view helpers via #helpers or #h, and automatically decorates objects passed to views.

_Comparing Rails presenter libraries like this one gets easier when tracking gem ecosystem changes on daily.dev._

### How does automatic presenter class inference work for a Rails model name like MyModel?

Magic Presenter looks up a presenter matching the model's class name using Magic Lookup, checking ancestor classes up to ObjectPresenter when no exact match exists. For example, MyModel maps to MyPresenter, and MyRecord also maps to MyPresenter, so ApplicationPresenter automatically presents ApplicationRecord and all its descendants without extra code.

_Developers evaluating Rails decorator gems can follow library updates like this on daily.dev._

## Similar posts on daily.dev

- [alec-c4/auto\_decorator: Convention-based decorator autoloading for Rails models.](https://daily.dev/posts/alec-c4-auto-decorator-convention-based-decorator-autoloading-for-rails-models--wwj9ybqdl) · Ruby Flow · 0 upvotes · 0 comments
- [Ruby Classes](https://daily.dev/posts/ruby-classes-nreohkvmx) · RUBYLAND · 0 upvotes · 0 comments
- [How to Use Rails Magic Methods in Plain Ruby Scripts](https://daily.dev/posts/how-to-use-rails-magic-methods-in-plain-ruby-scripts-snabw6esq) · Ruby Flow · 1 upvotes · 0 comments
- [Unparser: real life lessons migrating Ruby tools from Parser to Prism—Martian Chronicles, Evil Martians’ team blog](https://daily.dev/posts/unparser-real-life-lessons-migrating-ruby-tools-from-parser-to-prism-martian-chronicles-evil-marti-sxeixex9p) · Martian Chronicles · 0 upvotes · 0 comments

---

Tags: [#ruby](https://daily.dev/tags/ruby), [#rails](https://daily.dev/tags/rails)

[View this post on daily.dev](https://daily.dev/posts/github---alexander-senko-magic-presenter-presentation-layer-for-rails-models-to-replace-draper-hrtfqroor)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"GitHub - Alexander-Senko/magic-presenter: Presentation layer for Rails models to replace Draper","url":"https://daily.dev/posts/github---alexander-senko-magic-presenter-presentation-layer-for-rails-models-to-replace-draper-hrtfqroor","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/github---alexander-senko-magic-presenter-presentation-layer-for-rails-models-to-replace-draper-hrtfqroor"},"datePublished":"2026-08-12T21:14:55.826Z","dateModified":"2026-08-12T21:15:16.941Z","description":"Magic Presenter is a Ruby gem providing a presenter layer for Rails models, built on Magic Decorator, positioned as an alternative to Draper. It offers...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7c06909de5fa94cd9e4505b7eddec972?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7c06909de5fa94cd9e4505b7eddec972?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Ruby Flow","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Ruby Flow","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/a21aaa8bcbbf448193a016895c90a0e1","url":"https://daily.dev/sources/rubyflow"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/github---alexander-senko-magic-presenter-presentation-layer-for-rails-models-to-replace-draper-hrtfqroor","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"ruby,rails","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Ruby Flow","item":"https://daily.dev/sources/rubyflow"},{"@type":"ListItem","position":3,"name":"GitHub - Alexander-Senko/magic-presenter: Presentation layer for Rails models to replace Draper"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/github---alexander-senko-magic-presenter-presentation-layer-for-rails-models-to-replace-draper-hrtfqroor#faq","mainEntity":[{"@type":"Question","name":"What is a good alternative to Draper for implementing the presenter pattern in Rails?","acceptedAnswer":{"@type":"Answer","text":"Magic Presenter is a Ruby gem designed as an alternative to Draper for the presenter pattern in Rails. It is built on Magic Decorator, inherits from SimpleDelegator, supports automatic presenter class inference from model names, integrates view helpers via #helpers or #h, and automatically decorates objects passed to views. Comparing Rails presenter libraries like this one gets easier when tracking gem ecosystem changes on daily.dev."}},{"@type":"Question","name":"How does automatic presenter class inference work for a Rails model name like MyModel?","acceptedAnswer":{"@type":"Answer","text":"Magic Presenter looks up a presenter matching the model's class name using Magic Lookup, checking ancestor classes up to ObjectPresenter when no exact match exists. For example, MyModel maps to MyPresenter, and MyRecord also maps to MyPresenter, so ApplicationPresenter automatically presents ApplicationRecord and all its descendants without extra code. Developers evaluating Rails decorator gems can follow library updates like this on daily.dev."}}]}
```

