Другой процесс регистрации с devise / cancan, но только с одной моделью пользователя? - PullRequest
4 голосов
/ 21 января 2011

До сих пор я безуспешно пытался использовать devise, чтобы разрешить 2 разных пути регистрации для одной и той же модели пользователя.

Моя модель пользователя связана с другой моделью данных, но меня не волнуетчто при регистрации.Но я все еще хочу «показать» разницу пользователям (путь URL, внешний вид и т. Д.) И, конечно, я хочу сохранить в модели User тип пользователя, которым является мой пользователь, чтобы я мог вернуться к нему позже.укажите и спросите, что мне нужно для заполнения моих других моделей (связанных с пользователем).

Я изучил путь переписать свой собственный контроллер регистрации, но я не понимаю, как это поможетс маршрутами ... Я хотел бы что-то вроде: / usertype1 / signup и / usertype2 / signup виртуально для более чем 2 типов пользователей, но в конце он должен просто создать самый простой режим пользователя (электронная почта, pwd, подтверждение, тип пользователя).

На этом этапе приветствуются любые предложения:)

Alex

1 Ответ

6 голосов
/ 27 января 2011

В конце концов я сделал так, чтобы пользовательские маршруты указывали на одну и ту же страницу регистрации:

devise_for :users, :controllers => { :registrations => "registrations" } do
  get '/author/sign_up', :to => 'registrations#new'
  get '/client/sign_up', :to => 'registrations#new'      
end

Затем на странице регистрации я просто добавляю скрытое поле, значение которого я изменяю в зависимости от URL:

- if request.fullpath =~ /\/author\/sign_up/
  - session[:registration] = "author"
  = render 'author'
- elsif request.fullpath =~ /\/client\/sign_up/
  - session[:registration] = "client"
  = render 'client' '   

Таким образом, я могу визуализировать 2 разных страницы при регистрации.Это может работать с различными типами пользователей X.

Alex

...