SORU
13 ŞUBAT 2011, Pazar


sign_in eylem için farklı bir düzen hazırlamak içinde

Farklı/özel bir düzen "" sign_in eylem. vasiyet adlı kullanmaya çalışıyorum Buldum this sayfa hazırlamak wiki, ve ikinci örnek bile söylüyor yapabilirsin başına eylem (bu durumda sign_in eylem), ama bu gösterileri hiç bir örnek yapıyor. IRC biri bu deneyebilirim dediğini söyledi

class ApplicationController < ActionController::Base
  protect_from_forgery

  layout :layout_by_resource

  def layout_by_resource
    if devise_controller? && resource_name == :user && action_name == 'sign_in'
      "devise"
    else
      "application"
    end
  end
end

Ama hala varsayılan uygulama düzenini yükleme gibi çalışıyor gibi görünmüyor. Herhangi bir yardım seviniriz.

CEVAP
21 AĞUSTOS 2011, Pazar


Bir eylem için özel bir düzen uygulamak için başka bir yolu aşağıdaki gibidir.

9 ** "aynı zamanda denetleyicileri/ortamda config.bir geri arama kullanarak belirli Hazırlamak için düzeni ayarlayabilirsiniz göre(raylar 2) veya/uygulama rb config.rb (raylar 3). Bu her isteği önce üretimde bir kez idam, çünkü to_prepare bir geri arama yapılması için geliştirme ihtiyacı var."

config.to_prepare do
    Devise::SessionsController.layout "devise"
    Devise::RegistrationsController.layout proc{ |controller| user_signed_in? ? "application"   : "devise" }
    Devise::ConfirmationsController.layout "devise"
    Devise::UnlocksController.layout "devise"            
    Devise::PasswordsController.layout "devise"        
end

Genellikle bir düzen ayrımı kimlik doğrulaması gerektirmeyen giriş ve sayfa arkasına sayfa arasında, yukarıdaki yaklaşım çoğu zaman işe yarıyor. Ama aynı zamanda action_name yardımcı belirli bir eylem için bir düzen kurmayı kullanarak denedim ve işe yaradı:

config.to_prepare do
    Devise::SessionsController.layout proc{ |controller| action_name == 'new' ? "devise"   : "application" }
end

Bu şekilde düzenini değiştirmek için inşa hazırlamak denetleyicisi/eylem dayalı bir yardımcı yaratmak yerine daha iyi ApplicationController olduğunu düşünüyorum.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • itfigueres

    itfigueres

    12 EKİM 2013
  • MattSteffanina 2

    MattSteffani

    28 Kasım 2007
  • Shantanu Sood

    Shantanu Soo

    3 Kasım 2008