2011-06-26 13 views
12

मैं मौजूदा वेबसाइट को PHP से रूबी से रेल 3 पर पोर्ट कर रहा हूं और मुझे यूआरएल अपरिवर्तित रखना है।रेल 3 में पिछला स्लैश के साथ लिंक कैसे उत्पन्न करें?

मैं मार्ग है:

get 'companies/' => 'companies#index', :as => :companies 

एक दृश्य फ़ाइल में मेरे पास है:

link_to 'Companies', companies_path 

और इस यूआरएल "http://website.com/companies" के बदले "उत्पन्न करता है http : //website.com/companies/ "।

मैं यूआरएल के अंत में स्लैश चाहता हूं। क्या यह संभव है?

+0

मैं पूछ सकता हूँ? आपको इस स्लैश को रखने की आवश्यकता क्यों है? (यह रीस्टफुल तरीका नहीं है) – bor1s

+0

यह एसईओ उद्देश्यों के लिए है। इस यूआरएल वाला पेज पहले से मौजूद है और इस मामले में रीडायरेक्ट समाधान नहीं है। –

+1

मुझे सापेक्ष यूआरएल – hiroshi

उत्तर

38

आप अपने application.rb को यह जोड़ सकते हैं:

config.action_controller.default_url_options = { :trailing_slash => true } 

इस तरह सभी मार्गों पीछे के साथ उत्पन्न हो जाएगा स्वचालित रूप से स्लेश , आपकी परियोजना में प्रत्येक लिंक को संशोधित करने की आवश्यकता नहीं है।

22

सीधे शब्दों में इस प्रकार कार्य करें:

link_to 'Companies', companies_path(:trailing_slash => true) 

Documentation here.

+0

के लिए पिछली स्लैश की आवश्यकता है बहुत बढ़िया! मुझे 'trailing_slash' विकल्प के बारे में पता नहीं था। –

+1

बहुत बहुत धन्यवाद! यह काम करता हैं! लेकिन हो सकता है कि आप जानते हैं कि रेलवे स्वचालित रूप से पीछे हटने वाले स्लैश को जोड़ने का तरीका है यदि यह रूट.आरबी में यूआरएल पैटर्न में मौजूद है? –

+0

यदि आप जानते हैं, तो कृपया मुझे यहां समाधान दें: [लिंक] (http://stackoverflow.com/questions/6486758/how-to-make-rails-do-not-ignore-trailing-slashes-in-the- मार्ग) –

0

रेल 3.2 के लिए:

Rails.application.routes.default_url_options[:trailing_slash]= true 
3

मैं किसी भी संदर्भ नहीं मिल सकता है, लेकिन मार्ग परिभाषा को trainling_slash: true जोड़ने भी काम करता है (और अपने आप को दोहरा टाल)।

get 'companies/' => 'companies#index', :as => :companies, :trailing_slash => true 

इस रेल 3.2.13 के साथ परीक्षण किया गया था:

rails c 
1.9.3p327 :005 > app.companies_path 
=> "http://www.example.com/companies/ 
+0

अच्छा समाधान यदि आप इसे किसी विशेष मार्ग पर लागू करना चाहते हैं –

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