0

我的 Rails 3.2 应用程序中有一个 Spree 1.1 项目,其中有一个普通的 ruby​​ 对象app/models/MyObject.rb

class MyObject
  def self.some_method
    # do stuff
  end
end

我正在尝试以覆盖部分访问模型

Deface::Override.new(:virtual_path => 'spree/products/show',
                     :name => 'unique_name',
                     :insert_after => "[data-hook='product_description']",
                     :partial => 'shared/product_show_stuff')

这是我的部分

<%= MyObject.some_method %>

我得到的错误是

uninitialized constant ActionView::CompiledTemplates::MyObject

所以我尝试了以下方法,希望可以通过全局命名空间访问该对象

<%= ::MyObject.some_method %>

然后我得到这个错误:

uninitialized constant MyObject

如何访问我新创建的 ruby​​ 对象?

4

1 回答 1

0

您的常量应该在一个小写名称的文件中定义:

app/models/my_object.rb

不是:

app/models/MyObject.rb

这是为了让 Rails 的自动加载能够充分发挥作用。

于 2012-08-02T04:31:27.887 回答