2011-01-21 55 views
4

到目前爲止,我一直在嘗試使用devise來允許註冊到同一用戶模型的2個不同路徑。不同的註冊過程與設計/康康,但只有一個用戶模型?

我的用戶模型已鏈接到其他數據模型,但我不在乎註冊時間。但我仍然想向用戶展示差異(url路徑,看看&的感覺等等),當然我還想在User模型中保存用戶的用戶類型,以便我可以稍後再回來點,並要求我需要填寫我的其他模型(鏈接到用戶)。

我已經探索過重寫我自己的註冊控制器的道路,但我不明白這將如何幫助與路線...我想要的東西像:/ usertype1 /註冊和/ usertype2 /虛擬註冊超過2個用戶類型,但最終它應該創建最簡單的用戶模式(email,pwd,確認,usertype)。

任何建議,歡迎在這一點:)

亞歷

回答

6

我所做的最後是擁有定製路由指向同一個註冊頁面:

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

+0

不錯。我不得不做的另一件事是通過一個隱藏的字段到RegistrationsController。然後,我可以根據用戶註冊的「路徑」向用戶添加自定義參數。 – mattd 2012-03-26 02:26:00