2010-11-17 17 views
2

Tüm IE kullanıcılarını IE'yi desteklemediğimizi ve başka bir tarayıcıyı denemeleri gerektiğini bildiren belirli bir sayfaya yönlendirmek istiyorum. Bunu, rayları kullanarak 3 yolu nasıl yapabilirim ve yine de genel kullanıcıların sitenin genel alanını görmesine izin verebilir miyim?Herhangi bir Internet Explorer kullanıcısını belirli bir sayfaya yönlendirmek için raylarda 3 bir yolu var mı?

Benim yolları ben user_agent maç için yeteneği olduğunu biliyorum

MyApp::Application.routes.draw do 
    constraints(NoSubdomain) do 
    root :to => 'public#index' 
    end 

    constraints(Subdomain) do 
    root :to => 'internal#index' 
    end 
end 

... böyle bir şey vardır ama iç gitmeye çalışan tüm yani yeniden yönlendirmek almanız mümkün değilim Sitenin bir kısmı (account.myapp.com) '/ie' sayfasına. Herhangi bir fikir?

MyApp::Application.routes.draw do 
    constraints(NoSubdomain) do 
    root :to => 'public#index' 
    end 

    constraints :user_agent => /MSIE/ do 
    match "*" => redirect('/ie') 
    end 

    constraints(Subdomain) do 
    root :to => 'internal#index' 
    end 
end 
+1

Gerçekten IE'de işlerin nasıl yapılmasına ne dersin? IE6'yı ve altını desteklemediğini anlayabiliyorum, ama hadi ... Neyse, tarayıcı algılaması kullanıcı aracısı ile yapılır; IE durumunda, altyazı MSIE'si tarafından tanımlanabilir. IE kullanıcılarını reddetmek için –

+1

+1! As onları!! Onları ateşe ver! –

cevap

0

Burada iki sorun var gibi görünüyor.

İlk önce, her şeyle eşleştiğinde yönlendirme çağırıyorsunuz. Böylece, kullanıcı account.myapp.com/ talep eder ve bu yüzden onlar account.myapp.com/ie adresine yönlendirilir, ancak aynı zamanda bir şeyle de eşleşir ve böylece account.myapp.com/ie adresine yönlendirilir ve yönlendirilirler. tekrar. Bu sonsuz bir döngü haline geliyor, ama muhtemelen bunu görmediniz çünkü Rails ikinci şey yüzünden bile eşleşmeyecekti.

İkincisi, Raylar oraya bir ad koymanızı gerektirir. "url" yi veya istediğiniz her şeyi (yol, sayfa, her neyse) kullanabilirsiniz. Böylelikle Raylar, bu isime paragraflarda istenen yolu atayabilir - böylece yol ne olursa olsun param [: url] alırsınız. Biraz "" kullanmanıza izin vermeyeceğine şaşırdım, ama değil.

Bu benim için çalışıyor:

constraints :user_agent => /Firefox/ do 
    match "*url", :to => "ie#index" 
end 

Ben Mac'te değilim ve test etmek IE yok, ama orada kolayca alt IE can.

İlgili konular