Root with slug rails 4 路由
Root with slug rails 4 routing
目前我正在使用 friendlyID
gem,如果用户已通过身份验证,我只想将我的应用程序重定向到带有 slug 的根目录。
url
http://localhost:3000/companyABC/dashboard
这是我当前的代码
authenticated :employer do
root to: redirect("/:slug/dashboard"), as: :employer_root
end
namespace :company, path: "/:slug" do
resources :dashboard
namespace :settings do
resources :collaborators
end
end
但问题是当我登录时它会将我重定向到
http://localhost:3000/:slug/dashboard
据我所知,您不能在路由中使用 lambda,因此无法访问数据库并在路由中获取公司的 slug。
但是如果你使用 devise,你可以覆盖方法 #after_sign_in_path_for,这样用户将不会被重定向到 root_url 而是指定的 [=22] =] 代替。例如:
class ApplicationController < ActionController::Base
def after_sign_in_path_for(user)
company_dashboards_url(user.company)
end
end
目前我正在使用 friendlyID
gem,如果用户已通过身份验证,我只想将我的应用程序重定向到带有 slug 的根目录。
url
http://localhost:3000/companyABC/dashboard
这是我当前的代码
authenticated :employer do
root to: redirect("/:slug/dashboard"), as: :employer_root
end
namespace :company, path: "/:slug" do
resources :dashboard
namespace :settings do
resources :collaborators
end
end
但问题是当我登录时它会将我重定向到
http://localhost:3000/:slug/dashboard
据我所知,您不能在路由中使用 lambda,因此无法访问数据库并在路由中获取公司的 slug。
但是如果你使用 devise,你可以覆盖方法 #after_sign_in_path_for,这样用户将不会被重定向到 root_url 而是指定的 [=22] =] 代替。例如:
class ApplicationController < ActionController::Base
def after_sign_in_path_for(user)
company_dashboards_url(user.company)
end
end