How to override product_url in Spree 2.x / Rails 4 to make more SEO friendly? -


मैं अपने उत्पाद यूआरएल को देखना चाहूंगा:

/ product-name-here / P

के बजाय:

/ उत्पाद / उत्पाद-नाम-यहां

मैं इसे कैसे प्राप्त कर सकता हूं ?

बहुत सारे अनुसंधान के बाद मैंने इसे समझ लिया

इस प्रक्रिया में दो चरण हैं पहला तरीका है जो नए उत्पाद मार्ग से मेल खाता है।

तो अपने मार्गों में जायें। आरबी और इस खंड में:

  माउंट स्परी :: कोर :: इंजन, एटी = & gt; '/' # स्प्री विशिष्ट मार्ग यहां समाप्त हो गया है   

इस लाइन को जोड़ें: get ': id / p' = & gt; 'Spree / products # show'

तो अब यह इस तरह दिखता है:

  माउंट स्परी :: कोर :: इंजिन,: at = & gt; '/' # स्प्रीड विशिष्ट मार्ग यहाँ प्राप्त करें ': id / p' = & gt; 'स्प्री / उत्पादों # शो' एंड   

इस बिंदु पर आप नए यूआरएल संरचना के साथ उत्पाद पृष्ठ पर जाने में सक्षम होना चाहिए: / product-name-here / p

समस्या यह है कि उत्पाद पृष्ठों पर स्वचालित रूप से उत्पन्न सभी लिंक्स अभी भी पुरानी यूआरएल संरचना का उपयोग करेंगे, इसलिए हमें इसे ठीक करना चाहिए। ऐसा करने के लिए हम product_path फ़ंक्शन के लिए ओवर-स्यूड बनाने जा रहे हैं, जो इन यूआरएल को उत्पन्न करने के लिए इस्तेमाल करता है। "सहायता" नामक अपने सहायकों फ़ोल्डर में एक नई निर्देशिका बनाएं और फिर उस निर्देशिका के अंदर एक नई फाइल को products_helper.rb

नामित करें app / helpers / spree / products_helper.rb निम्न कोड जोड़ें:

  मॉड्यूल स्परी :: उत्पादसंपर्क उत्पादक उत्पाद (उत्पाद) "/#{product.permalink}/p" एंड एंड   

और बस। अब सभी लिंक्स उत्पन्न होने वाली नई यूआरएल संरचना का इस्तेमाल किया जाएगा


समस्या निवारण टिप:

निश्चित रूप से क्यों नहीं, लेकिन आप यह सुनिश्चित करने के लिए इस गाइड को संशोधित कर सकते हैं। जब मैंने उत्पाद बनाया तो मैं एक त्रुटि प्राप्त कर रहा था जब मैं एक अपरिभाषित फ़ंक्शन के बारे में गाड़ी चला गया था: line_item_description_text

मैं अपने गाड़ी में सामान्य स्प्री विवरणों का उपयोग नहीं करता, इसलिए इसे ठीक करने के लिए मैं बस ने कहा:

  def पंक्ति_आइटम_विवरण _टेक्स्ट (var) "   

Comments

Popular posts from this blog

Java - Error: no suitable method found for add(int, java.lang.String) -

java - JPA TypedQuery: Parameter value element did not match expected type -

c++ - static template member variable has internal linkage but is not defined -