我在系统中有多个用户类型,通常根据用户是否登录以及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