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
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.
Farklı bir düzen ile Android liste Gör...
SQL sütun içinde farklı değerler sayıs...
Farklı bir denetleyici içinde hazırlam...
'HTML denetleyicisi eylem içinde ...
Can't Looper aramadı işleyicisi i...