Invece di utilizzare il nome del controller, consiglierei di sfruttare il fatto che i controllori ereditano i propri filtri dai loro genitori. Allora, cosa mi consiglia è qualcosa di simile:
# app/controllers/application_controller.rb
class ApplicationController
# no filters here
end
# app/controllers/authenticated_controller.rb
class AuthenticatedController < ApplicationController
before_filter :login_required
end
# app/controllers/some_other_controller.rb
class SomeOtherController < AuthenticatedController
# inherits the before_filter from AuthenticatedController
# use this for most of your other controllers
end
# app/controllers/unauthenticated_controller.rb
class UnauthenticatedController < ApplicationController
# no filters, since this inherits directly from ApplicationController
# use this for the controller that you don't want to check login on
end
Ciò significa controllori sapere se si suppone per controllare accesso, piuttosto che avere una (possibilmente fragile) elenco di nomi.
fonte
2014-06-18 19:39:42