SORU
23 ŞUBAT 2011, ÇARŞAMBA


3, nasıl dinlenme uygulaması olarak aynı düzeni kullanan bir görünüm Ekle?raylar

Aynı kumanda ile farklı görüşleri tamamen farklı düzenleri kullanmak için izin uygulaması ve stil benim yapısı hakkında herhangi docs veya örnek bulamadım.

Bizim app scaffolded oldu ve biz o şık-jeneratörler görünümleri oluşturmak için kullanılan kimlik doğrulama için hazırlamak ekledi. İki model için izleme ve kontrol: aletler ve şirketler.

Ben şu anda tek bir düzen var: uygulama./düzenleri html.haml, her zaman adlandırma kuralı tarafından kullanıldığını zannediyorum ki her yerde başvurulan göremiyorum (raylar bir çaylak).

Ben şimdi ekleyin bir kaç manzaraları (mobil tarayıcılar) farklı stil ve düzeni (örneğin, giriş/çıkış bağlantıları sağ üst), içinde aynı denetleyicileri.

Bu nasıl yapılabilir?

CEVAP
23 ŞUBAT 2011, ÇARŞAMBA


Varsayılan olarak, layouts/application.html.haml (Eğer haml kullanıyorsanız. .erb).

Aslında, düzeni dosya klasörü izleme başına izleme başına işlem başına, yerine denetleyici başına veya set olabilir.

Birkaç durumlar vardır:

Varsayılan düzenini değiştirmek için dosya denetleyicisi (örn. kullanım another.html.haml yerine application.html.haml)

class ApplicationController < ActionController::Base
  layout "another"

  # another way
  layout :another_by_method
  private
  def another_by_method
    if current_user.nil?
      "normal_layout"
    else
      "member_layout"
    end
  end
end

Başka bir düzen dosyası kullanmak için belirli bir denetleyici tüm eylemleri değiştirmek için

class SessionsController < ActionController::Base
  layout "sessions_layout"
  # similar to the case in application controller, you could assign a method instead
end

Diğer düzen dosyası kullanmak için bir eylem değiştirmek için

def my_action
  if current_user.nil?
    render :layout => "normal_layout"
  else
    render :action => "could_like_this", :layout => "member_layout"
  end
end

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • aki6336

    aki6336

    14 AĞUSTOS 2008
  • ::..ηєѕѕ мιχ..::

    ::..ηєѕѕ

    15 Aralık 2006
  • spectragirlz16's channel

    spectragirlz

    22 Ocak 2012