отключение регистрации Devise только для производственной среды

Я запускаю бета-сайт с избранной группой пользователей. Я хочу чтобы отключить регистрацию только в производственной среде и только на короткий период времени (т. е. я не хочу полностью уничтожать свою регистрацию). Я знаю, что могу просто скрыть ссылку "зарегистрироваться", но я подозреваю, что хакеры умнее чем я все еще могу использовать маршруты 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

он передается как "истина", а не как ложь. Есть ли способ смоделировать производственную среду? Я просто наплевал на это.

Спасибо!

69
задан panzhuli 20 March 2011 в 19:58
поделиться