0

Rails3.2アプリにSpree1.1プロジェクトがあり、プレーンなルビーオブジェクトが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 に答える