Я запускаю бета-сайт с избранной группой пользователей. Я хочу отключить регистрацию только в производственной среде и только на короткий промежуток времени (т.е. Я не хочу полностью блокировать мою регистрацию). Я знаю, что могу просто спрятать ссылку "зарегистрироваться", но я подозреваю, что хакеры умнее, чем я могу использовать маршруты 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
В идеале мы отправим пользователя на страницу "page # registration_disabled" или что-то в этом роде. Я просто хотел получить что-то работающее, с которым я могу поиграть.
EDIT: Я изменил модель по запросу, а затем добавил в /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
он передается как "истинный", а не "ложный". Есть ли способ издеваться над производственной средой? Я просто плюю с этим.
Спасибо!