0

これをアプリに実装しようとしています。

この記事には、デコレータを作成する必要があると書かれていますが、具体的な方法については詳しく説明していません。これはコードです:

module CartDecorator
  extend ActiveSupport::Concern

  module InstanceMethods
    def is_downloadable?
      items = self.items.collect { |li| li[:variant].item }
      items.all? { |i| i.is_downloadable }
    end

    def has_downloadable?
      items = self.items.collect { |li| li[:variant].item }
      items.any? { |i| i.is_downloadable }
    end
  end
end

Piggybak::Cart.send(:include, CartDecorator)

そのコードをいくつかに追加する必要があるかどうかはわかりませんmodel.rb(価値があるためpiggybak_cart.rbapp/models/フォルダーにはありません)。

実行rails g decorator Cartしてみましたが、うまくいきませんでした。

私がやったことは、上記のコードをapp/helpers/cart_helper.rb.

rails g command次に、 (他の何かのために)を実行しようとすると、次のエラーが発生します。

/.rvm/gems/ruby-2.0.0-p0@myapp/gems/activesupport-3.2.13/lib/active_support/inflector/methods.rb:230:in `block in constantize': uninitialized constant CartHelper (NameError)
    from /.rvm/gems/ruby-2.0.0-p0@myapp/gems/activesupport-3.2.13/lib/active_support/inflector/methods.rb:229:in `each'
    from /.rvm/gems/ruby-2.0.0-p0@myapp/gems/activesupport-3.2.13/lib/active_support/inflector/methods.rb:229:in `constantize'
    from /.rvm/gems/ruby-2.0.0-p0@myapp/gems/activesupport-3.2.13/lib/active_support/core_ext/string/inflections.rb:54:in `constantize'
    from /.rvm/gems/ruby-2.0.0-p0@myapp/gems/actionpack-3.2.13/lib/abstract_controller/helpers.rb:136:in `block in modules_for_helpers'
    from /.rvm/gems/ruby-2.0.0-p0@myapp/gems/actionpack-3.2.13/lib/abstract_controller/helpers.rb:131:in `map!'

これにアプローチする最良の方法は何ですか?

4

1 に答える 1