Ruby / Rails - Presenter类类和实例方法

时间:2012-05-09 22:17:09

标签: ruby-on-rails ruby

我有一个基本的演示者,我主要用于JSON和CSV类型的演示。我被提出了一个我不确定如何处理的问题。如果我有一个带有类方法的PhotoPresenter,我无法访问实例方法帮助,所以我不得不创建self.help方法,但我认为这很糟糕。如何避免与实例和类级别方法重叠的任何想法。可能只是累了,对它很愚蠢

class Presenter
  include Rails.application.routes.url_helpers

  def self.as_collection(collection)
    collection.collect{|object| self.new(object)}
  end

  def help
    Helper.instance
  end

  def self.help
    Helper.instance
  end

  class Helper
    include Singleton
    include ActionView::Helpers::TextHelper
    include ActionView::Helpers::TagHelper
    include ActionView::Helpers::UrlHelper
  end

end

1 个答案:

答案 0 :(得分:1)

您可以避免一些重复,如下所示:

def self.help
  Helper.instance
end

def help
  self.class.help
end