我正在尝试理解我需要拥有的模型和关系,以便让用户注册并选择子域。我正在考虑使用Account
模型和使用User
作为身份验证系统的Devise
模型。将用户belongs
改为Account
和Account
has_many
Users
。
不确定这是否是实现我想要的最佳模式,但是,鉴于我所写的内容,我很难理解如何使子域的电子邮件唯一,并且只允许在子域。然后Admin
将能够邀请其他用户访问其帐户。
有更好的方法吗?
由于 唐纳德
答案 0 :(得分:0)
大多数工作都可以在routes.rb中完成:
module AppName
class UserSubdomainConstraint
def self.matches?( request )
request.subdomain.present? && request.subdomain != 'www'
end
end
end
AppName::Application.routes.draw do
devise_for :users
# THESE ARE THE ROUTES FOR YOUR MAIN SITE
constraints( AppName::UserSubdomainConstraint ) do
# THESE ARE THE ROUTES FOR USERS' SUBDOMAINS
end
end
然后,您可以使用控制器中的request.subdomain识别用户:
def index
@user_account = User.where( :subdomain => request.subdomain ).account
end
设计登录将在所有子域中全局正确吗?因此,您可以像在任何其他应用程序中那样对待它们。