1

Spree を既存のアプリにボルトで固定しています。私のアプリのページでは、製品のサブセットを表示するために、現在分類群 ID を使用して Spree::Product にアクセスしています。注文と同じ: アプリ コードから "Spree::Order.find(session[:order_id])" を実行します (したがって、Spree ページの外でカート内のアイテムの数を表示できます)

これは手間がかかります...代わりに Spree をカスタマイズする (いくつかのページを書き直す) べきか、それとも別のインスタンスとしてスピンアップして API 呼び出しを行うべきかなど?

ありがとう!

4

2 に答える 2

2

Spreeには、Spree::ControllerHelpers::CurrentOrderに含めることができるというモジュールがありますApplicationController。これによりcurrent_order、アプリケーションのすべてのビューでメソッドを使用できるようになります。

于 2012-11-11T05:27:02.077 に答える
0

あなたの質問はあまり明確ではなく (あなたが何を達成しようとしているのか正確にはわかりません)、Spree についてもよくわかりませんが、回答の要素をいくつか示します。

  • ビューをオーバーライドするには(通常、ほとんどの名前空間のプラグインとエンジンで動作します)、同じ名前とパスを持つファイルをメイン アプリ ツリーにドロップします。たとえば、 をオーバーライドする場合products/show.html.erbは、 にドロップしますapp/views/spree/products/show.html.erbビューは対応する spree controller からレンダリングされるため、通常のヘルパーにアクセスできない場合があることに注意してください。

  • コントローラーをオーバーライドするには、同じことを行います。少しだけカスタマイズしたい場合は、継承を使用することもできます...

  • あなたの 1 つの中で spree ビューをレンダリングするには、gem 内の正しいパスを使用render :file =>して指摘するだけです。

それだけです。他に必要なのは、どのファイルをオーバーライドしたいのか、どのクラスから継承したいのかを知るために、酒宴の宝石の中に少し飛び込むことです。エンジンについて少し読んでも害はありません。

于 2012-11-10T11:59:57.040 に答える