Использование Rails 3.2.
У меня есть полдюжины контроллеров и вы хотите защитить некоторые (но не все) из них с помощью http_basic_authenticate_with
.
Я не хочу вручную добавлять http_basic_authenticate_with
к каждому контроллеру (я мог бы добавить еще один контроллер в будущем и забыть его защитить!). Кажется, ответ состоит в том, чтобы поместить его в application_controller.rb
с аргументом :except
, который будет перечислять контроллеры, которые не должны быть защищены. Проблема заключается в том, что: except: требуется имена методов, а не имена модулей внешнего контроллера, например:
http_basic_authenticate_with :name => 'xxx', :password => 'yyy', :except => :foo, :bar
Итак, я подумал: "Подождите, так как у меня уже есть защищенные контроллеры, сгруппированные в routes.rb
, пусть там будет там". Поэтому я пробовал это на своих маршрутах:
scope "/billing" do
http_basic_authenticate_with :name ...
resources :foo, :bar ...
end
Но теперь я получаю
undefined method `http_basic_authenticate_with'
Какой лучший способ приблизиться к этому?