2011-06-26 11 views
12

Mevcut web sitesini PHP'den Ruby on Rails 3'e taşıyorum ve URL'leri değiştirmemeliyim.Rails 3'te iz bırakma çizgisi olan bağlantılar nasıl oluşturulur?

rotayı vardır: bir görünüm dosyasında

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

Ben:

link_to 'Companies', companies_path 

ve bu url "http://website.com/companies" yerine "üretir http : //website.com/companies/".

URL'nin sonunda eğik çizgi istiyorum. Mümkün mü? aşağıdaki gibi

+0

sorabilir miyim? Neden bu çizgiyi tutmaya ihtiyacın var? (RESTful bir şekilde değil) – bor1s

+0

SEO amaçlıdır. Bu URL’ye sahip sayfa zaten var ve bu durumda yönlendirme de çözüm değil. –

+1

Göreli URL'ler için takip eden eğik çizgi filmlere ihtiyacım var – hiroshi

cevap

38

Sen application.rb Bu ekleyebilirsiniz: tüm yolları bir eğik ile oluşturulur

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

Bu şekilde otomatik çizgi projenizdeki her bağlantıyı değiştirmeye gerek kalmadan. raylar 3.2 için

22

Basitçe yapın:

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

Documentation here.

+0

Awesome! 'Trailing_slash' seçeneği hakkında bilmiyordum. –

+1

Çok teşekkürler! İşe yarıyor! Ama belki biliyorsunuz, rotalar otomatik olarak rota.rb'deki url düzeninde mevcutsa izleri otomatik olarak ekleyebilmenin yolu var mı? –

+0

Biliyorsanız, lütfen bana çözümü burada verin: [link] (http://stackoverflow.com/questions/6486758/how-to-make-rails-do-not-ignore-trailing-slashes-in-the- rotalar) –

0

:

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

Ben herhangi bir referans bulamadık, ama rota tanımına trainling_slash: true ekleyerek de çalışıyor (ve kendini tekrar eden kaçınır).

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

Bu

Raylar 3.2.13 ile test edilmiştir:

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

Bunu belirli bir rotaya uygulamak istiyorsanız hoş bir çözüm –

İlgili konular