我正在使用公寓宝石来实现多租户。当应用程序上的注册表我想将他重定向到他自己的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
我发现模板缺少错误。 我想为不同的用户提供不同的主页,他们可以自定义它,但如果他们不这样,他们会看到一个简单的主页。
答案 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)