2012-01-09 4 views
2

Я добавил devise invitable, а затем мой собственный полностью отдельный контроллер, который обрабатывает все с помощью метода класса User.invite! и т. д. -> Все работает отлично.Devise invitable: Отключить просмотр

Просто интересно, что это лучший способ, чтобы отключить пользователей маршрут/приглашение/новый

-> Если кто-то смотрел на приложение, и понял, что это рельсы, а потом догадался, что это было с помощью завещать, а затем увидели, что у него есть приглашения, они могут попытаться отправить сообщение в контроллер пользователей/приглашений для создания приглашений вне кода, который я написал. Крайный кейс наверняка, но дыра в безопасности.

Но я не вижу, какой разумный способ уничтожить этот маршрут? Я думал, что могу переопределить в routes.rb с:

match '/users/invitation/new', :to => 'home#cp' 

Но это не работает. Должен ли я добавить контроллер для приглашений, а затем переопределить его (я попробовал, но разбил мое приложение на герою в процессе) - нет ли простого способа просто убить этот маршрут из моего приложения?

ответ

1

Check the documentation, вы обнаружите, что вы можете самостоятельно изменять и настраивать маршруты для разработки. Я использую Devise в своем проекте, и мы сделали лишь небольшую модификацию.

Вот отрывок:

devise_for :users, 
      :controllers => { :sessions => 'users/sessions', 
          :registrations => 'users/registrations' } do 
    get 'sign_in' => 'users/sessions#new' 
    get 'sign_up' => 'users/registrations#new' 
    get 'signup_success' => 'users/registrations#signup_success' 
    get 'users/profile' => 'users/registrations#profile', 
     :as => 'user_profile_settings' 
end 

Railscasts episode - part 2 на завещанию.

+0

Спасибо, у меня была глупая опечатка, объявленная devise_for: пользователи дважды в маршрутах и ​​забыла, что моя игра с: controllers => {} не сработала. Вы указали мне в правильном направлении, поэтому большое спасибо. – Dave

Смежные вопросы