用途:在 Rails 项目中以 TDD 方式创建 presenter,把视图相关的格式化逻辑从模型里抽离出来,让模型保持精简。
主要能力:presenter 继承 BasePresenter(BasePresenter < SimpleDelegator),通过 SimpleDelegator 委托模型方法;可包含 ActionView 的 NumberHelper、DateHelper、UrlHelper、TagHelper、TextHelper 等辅助方法;支持日期格式化、货币格式化(金额以分为单位存储)、徽章/标签生成、邮件与电话链接,以及为 nil 值返回占位 span;所有面向用户的文本使用 I18n;颜色映射使用常量。
使用方式:先写失败测试(RED),运行 bin/rails test test/presenters/event_presenter_test.rb 确认失败;再实现继承 BasePresenter 的 presenter,运行同一命令确认通过(GREEN)。控制器中可单个包装 EventPresenter.new(@event),集合用 events.map { |e| EventPresenter.new(e) },需要路由辅助方法时传入 view_context。
适用场景:需要从模型抽取视图格式化逻辑、统一日期/货币/徽章展示、并希望以测试驱动方式开发 presenter 的 Rails 项目。
限制:资料未提供安装命令、依赖版本、收费或平台信息;示例中的 BasePresenter 假定已存在,具体项目约定需以实际代码为准。