设计和公寓宝石多租户应用程序

时间:2015-02-20 09:36:03

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

我的应用目前只允许用户在其子域名上签名,即subdomain.domain.com/users/sign_in。我希望用户登录domain.com/users/sign_in。

我是Rails的新手,我在Github的这个项目的子域名方面获得了很多帮助:https://github.com/appcasts/saas-timetracker

在routes.rb中,我添加了“devise_for:users”以在domain.com/users/sign_in上显示sign_in表单,但是当我收到“无效的电子邮件和密码”时,我无法向该子域验证用户身份“错误。

用户是否可以从domain.com登录并进行身份验证并重定向到正确的子域?

我尝试过:How to: Scope login to subdomain

我得到一个列“subdomain”不存在错误。 我还尝试了Custom_Failure_app解决方案,它在我添加的所有redirect_to路径上都给出了错误。

任何帮助或建议都将受到赞赏。

1 个答案:

答案 0 :(得分:4)

在我们的应用程序中,我们创建了一个用户:

def create 
  @user = User.new(user_params)
  @account = Account.new(subdomain: params[:subdomain], owner: @user)
  if @user.valid? && @account.valid?
    Apartment::Tenant.create(@account.subdomain)
    Apartment::Tenant.switch(@account.subdomain)
    @user.save
    @account.save
    redirect_to new_user_session_url(subdomain: @account.subdomain)
  end 
end

在帐户控制器上的create方法。

你可以在这里看看 https://github.com/DefactoSoftware/Hours/blob/development/app/controllers/accounts_controller.rb