ruby-on-rails - SomeNamespace :Module 的未定义方法 `SomePresenter'

标签 ruby-on-rails methods module namespaces presenter

我使用命名空间在 Rails 中创建一些模块。它在 Controller 、模型中工作正常,但在 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错误。可能是什么问题呢。

最佳答案

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

something: SomeNamespace::SomePresenter.new(main.something)

关于ruby-on-rails - SomeNamespace :Module 的未定义方法 `SomePresenter',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21943375/

相关文章:

javascript - 使用 Math.round 的奇怪方法结果

python - 在函数装饰器中调用 Python 实例方法

python - 如何定义 "MODULE DOCS"以便用 pydoc 显示?

ruby-on-rails - 在 Rails 项目中自定义 Responders 应该放在哪里?

ruby-on-rails - Rails API : Adding array of objects to json return

ruby-on-rails - 断言 Redis 发布

sql - ROR 内连接给出重复值

ruby-on-rails - Ruby/Rails 中的夏令时开始和结束日期

java - 在java方法中从数据库返回数据数组

c - libdl 和 libltdl 有什么区别?