0

私は次のgemfileを使用します:

gem 'spree_gateway', :github => 'spree/spree_gateway'
gem 'spree_auth_devise', :github => 'spree/spree_auth_devise', :branch => 'edge'
gem 'spree_theme_v1', :path => '../spree_theme_v1'

コマンド「spree extension theme_v1」を使用して作成した最後の「spree_theme_v1」gem を使用すると、ログインとアカウント ルートを参照できなくなりました。代わりに、次のエラー メッセージが表示されます。

Spree/user_sessions#new の NoMethodError - 定義されていないメソッド「get_taxonomies」

エラーは、拡張機能で上書きしたファイル views/spree/shared/_main_nav_bar.html.erb から発生します。ファイルを削除するとすぐに、再び機能します。アドバイス、なぜこれが機能しないのですか? または、別のファイルを上書きする必要がありますか?

ありがとう!

4

1 に答える 1

2

問題は、gemがspreeからproducts_helper.rbをロードしていないことです:https ://github.com/spree/spree/tree/master/core/app/helpers/spree

失敗しているコントローラーに追加helper 'spree/products'して動作させることができます(あなたの場合は工夫についての何か)。

spree_essential_cmsから再定義されたPagesControllerを紹介します。おそらく、次のように役立ちます。

class Spree::PagesController < Spree::BaseController
  helper 'spree/products'
  def show
    ...
  end
end

ここに記載されているようにhttp://osdir.com/ml/spree-user/2013-01/msg00053.htmlapp/ controllersでデコレータを作成し、add_products_helper_decorator.rbのような名前を付けて、このコンテンツで埋めることもできます。 :

[Spree::UserPasswordsController, Spree::UserRegistrationsController, Spree::UserSessionsController].each do |klass|  
    klass.class_eval do    
      helper 'spree/products'  
    end
 end

それは、そのヘルパーを適切な場所に配置し、それを利用できるようにするのに十分なはずです。

于 2013-01-11T16:24:34.667 に答える