Parent/Child 类 在设计中
Parent/Child classes in Devise
我是 Rails 的新手,正在从事一个项目,我想使用设计创建 parent/child 关系。我浏览了很多关于 Devise 的文献,但没有看到任何明确的方法来完成我想要完成的事情(尽管我当然有可能忽略了答案,因为我使用了不同的术语)。
这是我想做的事情:
公司使用正常的设计注册流程进行注册,并提供一些额外信息——即公司名称、地址等。然后他们在申请中添加一次 'users'。用户不应有外部注册流程。我想每个用户都从 Company
.
继承公司信息
这是我想尝试的:
- 同时生成
Company
和 User
设计模型。
- 生成
User
控制器,修改new
动作为@current_company.user.build
这会完成我想要做的事情吗?
如果您能提供任何进一步阅读,我们将不胜感激!
这样做....
#app/models/company.rb
class Company < ActiveRecord::Base
has_many :users
end
#app/models/user.rb
class User < ActiveRecord::Base
devise ....
belongs_to :company
end
这是一个 has_and_belongs_to_many
协会。
你应该做的是让companies
成为它自己的模型;根本不包括 Devise。
相反,您应该使您的 User
模型成为唯一具有身份验证的模型。之后,每个 user
都必须与特定的 company
相关(或者如果你想使用 has_many :through
,你可以让一个用户成为许多公司的成员)。
您必须将 Devise
身份验证范围限定在一家公司 (IE company.users.exists? user
);我一直在努力,但还没有彻底实施。
这里有一个很好的参考:Scope login to subdomain
这将允许您 users
用于特定的 company
;您可以使用 subdomains
来确定范围(制作一个粗糙的 "multi tenant" 应用程序),或者在 sign-in 或其他地方有一个 select
框。
显然,您缺乏意见意味着我必须写一个宽泛的答案。
如果我是你,我会考虑你想要的flow。
如果您使用 PGSQL,研究 multi tenancy with Rails (the apartment gem
很好)- 这应该让您更好地了解应用程序的工作方式(即公司需要如何支持用户)。
我是 Rails 的新手,正在从事一个项目,我想使用设计创建 parent/child 关系。我浏览了很多关于 Devise 的文献,但没有看到任何明确的方法来完成我想要完成的事情(尽管我当然有可能忽略了答案,因为我使用了不同的术语)。
这是我想做的事情:
公司使用正常的设计注册流程进行注册,并提供一些额外信息——即公司名称、地址等。然后他们在申请中添加一次 'users'。用户不应有外部注册流程。我想每个用户都从 Company
.
这是我想尝试的:
- 同时生成
Company
和User
设计模型。 - 生成
User
控制器,修改new
动作为@current_company.user.build
这会完成我想要做的事情吗?
如果您能提供任何进一步阅读,我们将不胜感激!
这样做....
#app/models/company.rb
class Company < ActiveRecord::Base
has_many :users
end
#app/models/user.rb
class User < ActiveRecord::Base
devise ....
belongs_to :company
end
这是一个 has_and_belongs_to_many
协会。
你应该做的是让companies
成为它自己的模型;根本不包括 Devise。
相反,您应该使您的 User
模型成为唯一具有身份验证的模型。之后,每个 user
都必须与特定的 company
相关(或者如果你想使用 has_many :through
,你可以让一个用户成为许多公司的成员)。
您必须将 Devise
身份验证范围限定在一家公司 (IE company.users.exists? user
);我一直在努力,但还没有彻底实施。
这里有一个很好的参考:Scope login to subdomain
这将允许您 users
用于特定的 company
;您可以使用 subdomains
来确定范围(制作一个粗糙的 "multi tenant" 应用程序),或者在 sign-in 或其他地方有一个 select
框。
显然,您缺乏意见意味着我必须写一个宽泛的答案。
如果我是你,我会考虑你想要的flow。
如果您使用 PGSQL,研究 multi tenancy with Rails (the apartment gem
很好)- 这应该让您更好地了解应用程序的工作方式(即公司需要如何支持用户)。