Я запускаю бета-сайт с избранной группой пользователей. Я хочу чтобы отключить регистрацию только в производственной среде и только на короткий период времени (т. е. я не хочу полностью уничтожать свою регистрацию). Я знаю, что могу просто скрыть ссылку "зарегистрироваться", но я подозреваю, что хакеры умнее чем я все еще могу использовать маршруты RESTful для выполнения регистраций. Как лучше всего отключить регистрацию, чтобы мои среды тестирования / разработки по-прежнему работали, но производственная среда пострадала? Спасибо за любые указатели.
Я пробовал указывать именованные области в таких способ, которым «sign_up» переходит в «sign_in», но это не сработало. Вот что я пробовал:
devise_scope :user do
get "users/sign_in", :to => "devise/sessions#new", :as => :sign_in
get "users/sign_up", :to => "devise/sessions#new", :as => :sign_up
end
В идеале, мы бы отправили пользователя на страницу «pages # registration_disabled» или что-то в этом роде. Я просто хотел получить что-то работающее, с чем можно было бы поиграть.
РЕДАКТИРОВАТЬ: Я изменил модель по запросу, затем добавил следующее в /spec/user_spec.rb
describe "validations" do
it "should fail registration if in production mode" do
ENV['RAILS_ENV'] = "production"
@user = Factory(:user).should_not be_valid
end
end
он передается как "истина", а не как ложь. Есть ли способ смоделировать производственную среду? Я просто наплевал на это.
Спасибо!