我使用命名空间在 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/