如何在公寓宝石注册后重定向用户

时间:2017-09-05 11:50:31

标签: ruby-on-rails ruby ruby-on-rails-4 apartment-gem

我正在使用公寓宝石来实现多租户。当应用程序上的注册表我想将他重定向到他自己的localhost示例(xyz.localhost:3000)等。 注册我得到了所有必要的数据。 一个。电子邮件,b。 first_name,c.last_name,d。密码,e.password_confirmation,f.subdomain

我的控制器看起来像:

  class Diy::AdminController < ApplicationController
     layout false

     def register
        admin  = AdminUser.find_by_email params[:email]
       unless admin 
         admin = AdminUser.create(
         first_name:params[:first_name], 
         last_name: params[:last_name],
         email: params[:email],
         password: params[:password], 
         password_confirmation:  params[:password_confirmation],
         subdomain: ( params[:subdomain] ? params[:subdomain].downcase : params[:first_name].downcase))
       end
       sign_in(admin, bypass: true)
     end
   end

我发现模板缺少错误。 我想为不同的用户提供不同的主页,他们可以自定义它,但如果他们不这样,他们会看到一个简单的主页。

1 个答案:

答案 0 :(得分:1)

目前,您在登录AdminUser后没有重定向。因此,Rails会查看要呈现的模板的控制器操作,在这种情况下,Diy / Admin下没有名称空间的“注册”模板。

每个AdminUser都有自己的展示页吗?

如果是这样,我会向每个名为'homepage'的AdminUser添加一个属性,当AdminUser编辑其主页时,您将此属性设置为true。

然后,在您登录AdminUser后,只需将其重定向到其展示页面或根页面,具体取决于该属性:

def register
   admin  = AdminUser.find_by_email params[:email]
   unless admin 
     admin = AdminUser.create(
     first_name:params[:first_name], 
     last_name: params[:last_name],
     email: params[:email],
     password: params[:password], 
     password_confirmation:  params[:password_confirmation],
     subdomain: ( params[:subdomain] ? params[:subdomain].downcase : params[:first_name].downcase))
   end
   sign_in(admin, bypass: true)
   redirect_to admin.homepage? admin : root_path
 end

您可以直接删除此检查并将其保留在:

redirect_to admin

但是,无论AdminUser是否创建了自己的页面,都会重定向。注意

redirect_to admin

相同
redirect_to admin_path(admin)
相关问题