1

Spreecommerce をローカルに展開するのが好きで、独自の変更を実装したいと考えています。デプロイは成功しましたが、実際のソース ファイルがどこにあるのか、または実行されているのかわかりません。これを整理するために助けが必要です。誰でも私を助けてください。

前もって感謝します

4

1 に答える 1

1

Bundler は依存する gem をキャッシュの場所にダウンロードしますが、コードの変更を検討している場合は、それを台無しにしたくありません。ここで変更した内容は、後で gem を更新すると失われます。

標準的な Rails のカスタマイズ方法に慣れる必要があります。邪魔にならないものから順に並べると、次のようになります。

  • デコレーター - ホスト アプリケーションのアプリ フォルダー構造 (アセット、コントローラー、モデル、オーバーライド、ビューなど) 内のファイルで、構文Spree::[whatever class].class_eval doを使用してから標準の ruby​​ メソッド定義を使用して Spree のオブジェクトの単一のメソッドを変更します (その後に が続きendます)。これらのファイルは、Spree のソースではなくアプリ内の同じフォルダー内の対応する Spree と一致します。そして_decorator、ファイル名の末尾に追加されます。ここで例を参照してください: https://github.com/binaryphile/spree_dibs_1.2/blob/master/app/controllers/spree/admin/payments_controller_decorator.rb
  • Spree ファイル全体のオーバーライド - Spree ソース ファイルをアプリ内の同じ場所にコピーしてから、必要なソース変更を行います。これにより、同じ名前の Spree のファイルがオーバーライドされます (_decorator今回はありません)。Spree によるそのファイルへの将来のすべてのコード変更を自分のコピーに移行する責任があるため、これはあまり望ましくありません。
  • Spree ソースをフォークします。Gemfile 参照を Spree ではなく自分のバージョンに変更します。このコードに直接変更を加えて、通常の Spree の代わりに実行してください。これは、Spree のバージョンのアップグレードが非常に複雑で困難になるため、非常に望ましくありません。

コードを再利用可能にすることを計画している場合は、内部または公開された拡張機能にすることも検討できます。そのアプローチについては、Spree のドキュメントを参照してください。

于 2012-12-08T20:59:42.713 に答える