2011-08-13 21 views
8

Sitem için bir mobil tarayıcıda alternatif bir düzen sağlamak üzere aynı taktikleri Mobile Devices railscast'da kullanıyorum.Alternatif bir Rails düzeni, ancak aynı görünümde, mobil aygıtlarda

Bir mobil tarayıcı algılandığında, request.format şu şekilde ayarlandı: MIME türü olarak tanımladığım mobil. Mobil cihazlar için yeni bir düzen oluşturdum. Mobil görünüm sağlarsam (ör. Show.mobile.haml), hem mobil görünüm hem de düzen mobil aygıtlarda kullanılır ve her şey harika çalışır.

Sorun şu ki, tamamen yeni görünümler oluşturmak istemiyorum, sadece değiştirmek istediğim düzen. Uygun şekilde adlandırılmış bir görünüm oluşturmazsam, mobil düzen hiç kullanılmaz. Aynı şekilde, hem mobil cihazlarda hem de ikisini değiştirmeyi başarabiliyorum.

Burada nelerin eksik? Mobil bir kullanıcı olduğumda düzeni sadece düzeni nasıl değiştirebilirim?

cevap

18

sonra basitçe eklemek size Railscasts gelen mobile_device? yöntemi eklemiş varsayarsak application_controller.rb için aşağıdaki:

layout :which_layout 
    def which_layout 
    mobile_device? ? 'mobile' : 'application' 
    end 

app/views/düzenlerinde mobile.html.erb dosyası oluşturmak için emin olun

Aynı görünümü oluşturmak istediğinizde, request.format'ı ayarlama konusunda endişelenmeyin.

+0

Teşekkürler, tam olarak aradığım şey buydu. – Kelly

4

İstenilen biçimi HTML’den Mobile’e sözleşmeye aykırı olmak için her zaman değiştirdim. Bu aracı tamamen kötüye kullanır, bu yüzden DRY kalmaya çalışırken sorunlara koşmanız şaşırtıcı değildir.

İstenen biçimi değiştirmekten ziyade, belirli bir isteğin bir mobil aygıttan olup olmadığını kontrol edin ve düzeni buna göre ayarlayın. Bing, patlama, patlama - bitti. Başkası olmadığından alakasız bir şeyle uğraşmak yok ve işe geri dönebilirsiniz.

Kod yazabilirdim, ancak tybro0103 sadece önyükleme bağlantısı olan bir yumrukla beni döverdi. Ooooh aaaaah!

+1

+1 bunu benden daha iyi açıklamak için :) – tybro0103

İlgili konular