सभी मार्गों में देश कोड जोड़ें - रूबी, रूबी-ऑन-रेल -4

क्या यह जोड़ना संभव है /in यूआरएल की उत्पत्ति के बाद। अभी यूआरएल है xxx.com/home/index और इसे पसंद है xxx.com/in/home/index। यह देश के लिए, भारत के आधार पर परिवर्तन है /in, हमारे लिए /us आदि।

मैं मार्गों में गुंजाइश जोड़ता हूं,

scope ":country_code" do
root "home#index"
get "page/about"
end

मैं रूट पथ पर नेविगेट कैसे कर सकता हूं और पथ बदलने के लिए सभी कोड बदलना है? क्या कोई अन्य समाधान है?

धन्यवाद

उत्तर:

जवाब के लिए 0 № 1

हाँ यह संभव है। आपकी आवश्यकता के अनुसार आपको हमारी आवश्यकता है country_code जैसा कि हम के लिए उपयोग करते हैं id में मार्गों

सबसे पहले, आपको एक बनाना होगा जड़ action में controller पसंद:

root_to "welcome#index"

फिर हमें एक मार्ग को परिभाषित करने की आवश्यकता है जैसे:

xyz/:country_code/member_action => "welcome#search", as: "my_action"

अब जब कोई अनुरोध प्राप्त होगा root_path में index की कार्रवाई WelcomeController, हम अनुरोध आईपी देश के विवरण की जांच करेंगे।

आप उपयोग कर सकते हैं https://ipinfodb.com/api अनुरोध आईपी के देश के विवरण प्राप्त करने के लिए

और अंत में पाने के बाद country_code, अनुरोध को यहां से अगले कार्य पथ पर रीडायरेक्ट करें जैसे: redirect_to my_action_path("IN")


जवाब के लिए 0 № 2

यदि आप पास करते हैं तो आप डायनामिक नेमस्पेस के अंदर सभी मार्गों को परिभाषित कर सकते हैं सामान्य मार्गों का उपयोग करेंगे module: false इस तरह:

Rails.application.routes.draw do
["us","uk","in"].each do |country_code|
namespace country_code.to_sym, module: false do
resources :users

root "home#index"
get "page/about"
end
end

संबंधित सवाल
सबसे लोकप्रिय