【问题标题】:use gazay/gon in presenter object在演示者对象中使用 gazay/gon
【发布时间】:2016-04-09 14:44:26
【问题描述】:

我正在使用演示者对象使一些复杂的数据可用于我的视图。我需要的部分数据打算由 javascript 呈现,为此我想使用gon gem 将数据共享给浏览器。

这是我的(现在很简单),app/presenters/similarity_presenter.rb 对象:

class SimilarityPresenter
  attr_reader :similarities
  def initialize(similarities)
    @similarities = similarities
    gon.histories = @similarities.each { |s| [s.id, s.data(10)] }
  end
end

当我执行我的操作时:

  def index
    period = Period.default
    @similarity_presenter = SimilarityPresenter.new Similarity.all
  end

我收到了undefined local variable or method 'gon'

【问题讨论】:

    标签: javascript ruby-on-rails presenter


    【解决方案1】:

    我发现的第一种方法是将 gon 变量传递给演示者:

      def index
        period = Period.default
        @similarity_presenter = SimilarityPresenter.new gon, Similarity.all
      end
    

    在演示者中:

    class SimilarityPresenter
      attr_reader :similarities
      def initialize(gon, similarities)
        @similarities = similarities
        gon.histories = @similarities.each do |s|
          [s.id, s.data(10)]
        end
      end
    end
    

    这行得通,但我必须承认,我不太喜欢在我使用演示器的每个控制器中传递变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-24
      • 1970-01-01
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      相关资源
      最近更新 更多