8

さて、私はこのチュートリアルに従って酒宴のデフォルトのテーマを変更しようとしています

http://blog.endpoint.com/2010/01/rails-ecommerce-spree-hooks-tutorial.html

しかし、ホームページはまったく変更されません。チュートリアルは Rails 2 用であるため、Rails 3 で動作させるには、チュートリアルから何を変更する必要があるのでしょうか?

フックを使用するよりも簡単なソリューションを歓迎します。また、拡張機能をアンインストールするなど、レールで実行したコマンドを元に戻す方法はありますか。

4

2 に答える 2

6
  1. 私にとってうまくいった解決策は、「サイト」と言う独自の拡張機能を作成することでした。rails g spree:extention siteその後、宝石のパスを見て、別のエディタープロジェクトでスプリーコアの宝石全体を開き、app/views/layouts/spree_application.html.erb.

あなたの html がデフォルトのスプリー ショップとそれほど変わらない場合 (私の場合はhttp://daugpigiau.ltでかなり異なります)、フックのみを使用して一部のパーツをオーバーライドできる場合があります。それでも、フック名を知る唯一の方法は、私にとって興味深いコアジェムとテンプレートの内部を調べることでした。興味のあるフックがわかったら、次のようなことができます。

class PigiauHooks < Spree::ThemeSupport::HookListener
  # custom hooks go here
  insert_after :admin_inside_head, 'shared/admin/ckeditor_include'
  insert_before :admin_product_form_meta, 'shared/admin/product_editor'
  insert_before :admin_product_form_additional_fields, 'shared/admin/unavailable_on'
end

これらは、私が変更したかった場所の私自身のパーシャルです。

  1. はい、実行する必要がある他の世代と同じように、拡張機能の生成部分を元に戻すことができます。生成rails destroy spree:extension your_extension_name中に実行されたすべての操作が元に戻ります。

最初はオーバーライド部分に苦労しましたが、これに関するドキュメントには、初めてのユーザーが把握するには空白が多すぎます。

于 2010-12-04T15:52:30.447 に答える
3

Spree のデフォルトのテーマを変更するには、独自の拡張機能を生成し、そこからビュー ファイルをオーバーライドする必要がありますspree_core-0.30.1/app/views。ただし、Spree の現在のバージョンには小さなバグがあり、テーマ設定と拡張機能の作成が非常に混乱する可能性があります。ドキュメントによると、新しい拡張機能を作成するには、次のコマンドを実行する必要があります。

$ rails g spree:extension myext

そして、次の出力が生成されるはずです。

 create  myext
 create  myext/db
 create  myext/public
 create  myext/LICENSE
 create  myext/Rakefile
 create  myext/README.md
 create  myext/.gitignore
 create  myext/myext.gemspec
 create  myext/lib/tasks/install.rake
 create  myext/app
 create  myext/app/controllers
 create  myext/app/helpers
 create  myext/app/models
 create  myext/app/views
 create  myext/spec
  exist  myext/lib
 create  myext/lib/myext_hooks.rb
 create  myext/lib/tasks/myext.rake
 create  myext/lib/myext.rb
 create  myext/spec/spec_helper.rb
gemfile  myext

ただし、出力は次のとおりです。

create  myext
create  myext/config
create  myext/db
create  myext/public
create  myext/LICENSE
create  myext/Rakefile
create  myext/README.md
Could not find ".gitignore" in any of your source paths. Your current source paths are:

現在の回避策は、行を変更することです

gem 'spree'

あなたのGemfileで

gem 'spree', :git => "git://github.com/railsdog/spree.git", :tag => "v0.30.1"

その後、もう一度実行bundle installrails g spree:extension myext ます。すべてのファイルが正しく作成され、Gemfile にプラグインされます。次に、必要なすべてのファイルを上書きできますmyext/app/views

于 2010-12-22T02:31:39.017 に答える