【问题标题】:Ruby/Rails - Presenter class class and instance methodsRuby/Rails - Presenter 类和实例方法
【发布时间】:2012-05-09 22:17:08
【问题描述】:

我有一个基本演示器,主要用于 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

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

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

    def self.help
      Helper.instance
    end
    
    def help
      self.class.help
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多