我正在使用设备进行身份验证,并希望将经过身份验证的用户路由到位置#show。用户属于某个位置。我在路线中试过了几件事,包括这个。
authenticated :user do
match 'locations/:id' => 'locations#show', :as => :root
end
不幸的是,即使登录,也不会改变一个东西并路由到家庭#index。我的完整路线文件
authenticated :user do
match 'locations/:id' => 'locations#show', :as => :root
end
root :to => "home#index"
resources :locations
devise_for :users
resources :users
有关如何让root用户登录时显示位置ID的任何想法?
答案 0 :(得分:1)
您可以通过在终端中运行以下命令来查看与设计相关的所有可用路线。
rake routes
答案 1 :(得分:1)
您可以在经过身份验证的块中使用具有不同名称的root,如下所示:
authenticated :user do
root to: 'locations#show', :as => authenticated_root
end
答案 2 :(得分:0)
我最终在我的应用程序控制器
中首先定义了登录后路径def after_sign_in_path_for(resource)
if resource.class == User
location_path(resource.location)
elsif resource.class == Location
location_path(resource)
end
end
然后我像这样设置我的路线
authenticated :user do
devise_for :users do
get "/", :to => "devise/sessions#new"
end
root :to => 'devise/sessions#new'
end