5

मैं Rails3.1 ऐप में अपने मार्गों का पूर्ण अंतर्राष्ट्रीयकरण प्राप्त करने की कोशिश कर रहा हूं। मैं मार्ग क्रियाओं और संसाधनों को स्थानीयकृत करने के लिए फ्रांसेस्का प्ला के rails-translate-routes का उपयोग कर रहा हूं। आखिरी कदम मेरे कुछ मॉडलों के लिए स्लग का अनुवाद करने में सक्षम होना है।रेल मार्गों में स्लग का अनुवाद करने का सबसे अच्छा तरीका क्या है

मार्ग अनुवाद किया जाना है:

http://myhost.com/products/pharmacy --> http://myhost.com/productos/farmacia 

मैं प्रपत्र

# routes.rb 
match 'products/:category_slug' => "products#index" 

की एक नेस्टेड मार्ग है मैं एक उदाहरण #<Category id: 1, slug: "pharmacy"> के साथ एक मॉडल श्रेणी है और मैं अपने ProductsController में find_by_slug श्रेणी है।

मार्ग के :category_slug अनुवाद का अनुवाद करने के तरीके पर कोई विचार?

उत्तर

0

जहां तक ​​मुझे पता है, आप अनुवाद नियंत्रकों को सीधे अपने नियंत्रक से कॉल कर सकते हैं जब तक आप I18n के साथ सही ढंग से नामस्थान करते हैं।

तो अपने ProductsController निम्नलिखित की तरह कुछ हो सकता है:

class ProductsController < ApplicationController 
    def index 
    i18n_slug = I18n.t("locale.category.#{params[:category_slug]}") 
    @category = Category.find_by_slug(i18n_slug) 
    end 
end 

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

संबंधित मुद्दे

 संबंधित मुद्दे