我在系統中有多個用戶類型,通常根據用戶是否登錄以及current_user.user_type是什麼來顯示每個用戶不同的視圖和存儲信息的模板。因此,我有很多這樣的:在Rails中管理條件重定向
#controller
@project = Project.find(params[:id])
if current_user.user_type == "Company"
redirect_to :controller => "companies", :action => "home"
elsif current_user.user_type == "Contractor"
@contractor = Contractor.find(current_user.user_type_id)
redirect_to :controller => "contractors", :action => "home"
elsif current_user.user_type == "Customer"
redirect_to :controller => "companies", :action => "list"
end
這是我的第一個Rails項目,我很肯定這是糟糕的設計。以更好的方式做這件事的簡單幹淨的方法是什麼?
藏袍,在我看來,我應該只是做case語句。例如,我有些地方會以用戶身份登錄,但根據用戶的user_type,他們會被重定向到其他控制器的主頁。如果這只是一個重定向問題(而不是一個數據決策),那麼一個案例陳述就足夠了。這看起來合理嗎? – sscirrus 2010-06-29 06:17:12