【问题标题】:Root with slug rails 4 routing根与 slug rails 4 路由
【发布时间】:2015-08-15 01:46:51
【问题描述】:

目前我正在使用friendlyID gem,如果用户通过身份验证,我只想将我的应用程序重定向到带有 slug 的根目录。

网址

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

【问题讨论】:

  • 恐怕你需要明确设置root。您可以做的是在绑定到 root 的操作中检查用户是否已通过身份验证并相应地呈现不同的视图

标签: ruby-on-rails ruby friendly-url friendly-id


【解决方案1】:

据我所知,您不能在路由中使用 lambda,因此无法在路由中访问数据库并获取公司的 slug。

但是如果你使用devise,你可以覆盖方法#after_sign_in_path_for,所以用户不会被重定向到root_url,而是被重定向到指定的url。例如:

class ApplicationController < ActionController::Base
  def after_sign_in_path_for(user)
    company_dashboards_url(user.company)
  end
end

更多信息在这里:devise docs about after_sign_in_path_for

【讨论】:

  • 非常感谢您给我提示。我想我可以请求路线中的 slug。
猜你喜欢
  • 2013-11-05
  • 2016-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多