动态资源根路径

时间:2012-04-02 06:22:12

标签: ruby-on-rails-3 resources path devise root

我正在使用devise gem进行身份验证。 我在我的项目中有多个角色,如实验室,诊所,然后想要适当的重定向 主页取决于角色。如 *如果登录用户具有“实验室”角色,则重定向'labs#order_status'。 *如果登录用户具有“诊所”角色,则重定向'visit #index'。 我可以使用after_sign_in_path_for方法实现上述目的。

但我不知道如何在登录后将这些路径设置为资源root_path(如user_root_path) 即在登录后应该返回时调用root_path *'labs#order_status'如果登录用户具有'lab'角色。 *'如果登录用户具有'诊所'角色,请访问#index'。

我可以使用authenticated:user方法为登录用户设置'static'资源root_path 但我不知道如何设置为动态

的routes.rb

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

0 个答案:

没有答案