0

我使用命名空间在 Rails 中创建一些模块。它在控制器、模型中运行良好,但在presenters路径中的演示者出现了问题。

这是演示者之一,没有命名空间:

class MainPresenter < Struct.new(:main, :current_user)
  extend Ext::CollectionPresenter

  def as_json
    {
      something: SomeNamespace::SomePresenter(main.something)
    }
  end

end

这是主持人presenters/some_namespace/some_presenter.rb

class SomeNamespace::SomePresenter < Struct.new(:something, :options)
  extend Ext::CollectionPresenter

  def as_json
    # some hash here
  end

end

我得到undefined method 'SomePresenter' for SomeNamespace:Module错误。可能是什么问题呢。

4

1 回答 1

1

SomePresenter是一个类,您将它用作一种方法。因此,错误。如下使用它:

something: SomeNamespace::SomePresenter.new(main.something)
于 2014-02-21T19:27:17.927 回答