如何将当前用户数据添加到子域约束rails 4

How to add current user data to sub domain constraint rails 4

假设我的动作控制器中有以下代码:

def after_sign_in_path_for(resource)
    if resource.has_not_created_website?
      themes_path
    else
      root_url(:subdomain=>resource.website.domain)
    end
  end

登录后将我重定向到

http://webitdev.lvh.me:3000

但我想要这样的东西:

http://webitdev.lvh.me:3000/websites/7/edit

我尝试了很多代码和技巧,但都是徒劳的。我尝试添加字符串,但它对我不起作用。

root_url 将生成 URL 到您的应用程序的根路径,因此 http://example.com.

如果你传递子域参数,它会被改变,但它会保留到根的路径。

subdomain参数可以用于任何路由生成,因此如果你想将用户重定向到他的子域下的网站编辑页面,假设路由由edit_website_url(@website)表示,只需传递子域参数

edit_website_url(resource.website, subdomain: resource.website.domain)

另一种常见做法是在控制器级别强制用户位于其子域下(前置过滤器可以检查用户是否通过子域访问请求)然后始终使用相对路径

edit_website_path(resource.website)

这样您就不必在每个路径生成中指定子域。