Kimlik doğrulama için gerekli olan bir raylar 4.2.x uygulaması var - Birkaç denetleyicim var.Bir önceki hariç tüm denetleyicilerde ve eylemlerde çalışacak şekilde nasıl bir işlem yapabilirim?
Kimlik doğrulaması istemiyorum! Ana denetleyici dizin eylemi dışındaki tüm denetleyiciler ve eylemler üzerinde çalıştırılacak yöntem.
class ApplicationController < ActionController::Base
before_action :authenticate_user!
...
end
Ben de belirli bir grup kısıtlayabilirsiniz: (! Tabii ki, authenticate_user kendisi login gibi eylemleri geçmesi hazırlamak ilgilenir)
Her denetleyici eylem application_controller.rb before_action çalışmasını sağlayabilirsiniz gerçekleşen işlemlerle tüm kontrolörleri arasında:
class ApplicationController < ActionController::Base
before_action :authenticate_user!, except: [:index]
...
end
Ama bir istisna olmak sadece eve/index nasıl görmüyorum.
Elbette, her denetleyiciye el ile before_action :authenticate_user!
ekleyebilir ve dizin eylemi için ana denetleyiciye bir istisna ekleyebilirim. Fakat bu çok kuru değil ve eğer yeni bir kontrolör eklersem, bu işlem öncesi her birini eklemeyi unutmam gerek.
ApplicationController'da önceden işleminizi bildirdiğinizden emin misiniz? –
nevermind. Sorun şu ki, kimlik doğrulama denetleyicisindeki eylemden önce kendim atlamadım, bu yüzden ne olursa olsun her zaman çalışır. –