Ruby on rails 3 动态资源根路径
我正在使用Desive gem进行身份验证。 在我的项目中,我有多个角色,比如实验室、诊所,然后想要重定向到适当的位置 主页取决于角色。比如 *如果登录的用户具有“实验室”角色,则重定向“实验室#订单状态”。 *如果登录用户具有“诊所”角色,则重定向“访问#索引”。 我可以通过在路径中使用after_sign_for方法来实现上述功能 但我不知道在登录后如何将这些路径设置为资源根路径(如用户根路径) i、 e如果在登录后调用根路径,则应返回哪个路径 *如果登录用户具有“实验室”角色,则为“实验室#订单状态”。 *如果登录用户具有“诊所”角色,则为“访问#索引” 我可以使用authenticated:user方法为登录用户设置“静态”资源根路径 但我不知道如何设置为动态 routes.rbRuby on rails 3 动态资源根路径,ruby-on-rails-3,resources,path,devise,root,Ruby On Rails 3,Resources,Path,Devise,Root,我正在使用Desive gem进行身份验证。 在我的项目中,我有多个角色,比如实验室、诊所,然后想要重定向到适当的位置 主页取决于角色。比如 *如果登录的用户具有“实验室”角色,则重定向“实验室#订单状态”。 *如果登录用户具有“诊所”角色,则重定向“访问#索引”。 我可以通过在路径中使用after_sign_for方法来实现上述功能 但我不知道在登录后如何将这些路径设置为资源根路径(如用户根路径) i、 e如果在登录后调用根路径,则应返回哪个路径 *如果登录用户具有“实验室”角色,则为“实验室
scope :path => '/clinic', :controller => :visits do
match '/' => :index, :as => :clinic_root
end
scope :path => '/lab', :controller => :labs do
match '/' => :order_status, :as => :lab_root
end
authenticated :user do
root :to => 'lab_visits#new'
end
devise_scope :user do
root :to => "devise/sessions#new"
end
unauthenticated do
as :user do
root :to => 'devise/sessions#new'
end
end
root :to => "devise/sessions#new"
application.rb
protected
def after_sign_in_path_for(resource)
case current_user.type
when "LAB"
lab_root_path
when "CLINIC"
clinic_root_path
else
super
end
end
看见我已经通过使用rails高级约束()和warden(request.env['warden'].user)解决了这个问题