2010-10-17 13 views
8

ठीक है, मैं इस ट्यूटोरियलस्प्री, रेल 3, और थीम

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

का पालन करते हुए होड़ के डिफ़ॉल्ट विषय बदलने का प्रयास कर रहा है लेकिन मुखपृष्ठ के बाद से अच्छी तरह से सब पर नहीं बदलता है, ट्यूटोरियल रेल 2 के लिए है, मैं बस सोच रहा हूं कि इसे ट्यूटोरियल से बदलने के लिए क्या करना है ताकि इसे रेल 3 के साथ काम कर सकें?

हुक का उपयोग करने से सरल समाधान का स्वागत है। साथ ही, जब भी मैं इसमें हूं, तो आपके द्वारा रेल में चलने वाले आदेश को पूर्ववत करने का कोई तरीका है जैसे एक्सटेंशन को अनइंस्टॉल करना।

उत्तर

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 

इन स्थानों मैं बदलना चाहते हैं के लिए बस अपने ही partials हैं।

  1. हाँ आप किसी भी अन्य पीढ़ी तुम सिर्फ rails destroy spree:extension your_extension_name चलाने की आवश्यकता के रूप में विस्तार पीढ़ी भाग पूर्ववत कर सकते हैं और यह सब आपरेशन है कि यह के दौरान प्रदर्शन किया गया लौट जाएगा पीढ़ी

है मैंने पहले कारण दस्तावेज पर ओवरराइडिंग भाग के साथ गठबंधन किया है, इस पर पहली बार उपयोगकर्ता को समझने के लिए थोड़ा अधिक खाली रिक्त स्थान है।

+0

उत्तर में सभी आवश्यक फ़ाइलों को ओवरराइड कर सकते हैं, मैं दस्तावेजों के चारों ओर अपने सिर लपेट नहीं सकता।यह वास्तव में मदद करता है। – BimoZX

+0

सहमत हैं, दस्तावेज़ीकरण बहुत भ्रमित है, और लगता है कि यह पुराना है ... –

3

स्प्री की डिफ़ॉल्ट थीम बदलने के लिए आपको अपना खुद का एक्सटेंशन जेनरेट करना होगा और दृश्य फ़ाइलों को spree_core-0.30.1/app/views से ओवरराइड करना होगा। हालांकि, स्प्री के वर्तमान संस्करण में थोड़ी सी बग है जो उन्हें थीमिंग और विस्तार निर्माण को वास्तव में भ्रमित कर सकती है। डॉक्स के अनुसार, एक नया विस्तार आप निम्न आदेश चलाना चाहिए बनाने के लिए:

$ 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' 
को बदलना है 10

अपने Gemfile में

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

तो bundle install और rails g spree:extension myext फिर से चलाने के। यह सभी फाइलों को सही ढंग से बनाएगा और इसे आपके जेमफाइल में प्लग करेगा। फिर आप myext/app/views

+0

धन्यवाद, डॉक्टर मुझे भ्रमित कर रहा है, मुझे लगता है कि कुछ पुराने हैं। – BimoZX