在Rails 3应用程序中,我有2个逻辑实体 - 用户和公司。 我希望有两种不同的注册形式(针对用户和公司)。此外,为他们两个登录表格也很棒。
我现在所拥有的 - 为具有两个角色(用户,公司)的用户模型配置Devise + Cancan,所以我现在有“/ users / sign_in”和“/ users / sign_up”。
我想在我的应用程序中使用以下网址:
/login
/users/signup
/companies/signup
另一个问题是如何组织用户和公司之间的关系,如果公司继承用户或我应该使用聚合 - 用户has_one公司?我更喜欢第二个变体,并计划使用cancan user role =“company”来使用user.company。
请帮帮我。感谢。
答案 0 :(得分:1)
您可以设计多个模型。您也可以添加公司。
rails generate devise company
这会得到你提到的网址。
关于用户和公司之间的关系通常使用:
class User < ActiveRecord::Base
belongs_to :company
end
class Company < ActiveRecord::Base
has_many :users
end
您必须在迁移中向User模型添加company_id
列才能实现此目的。那时没有继承权。用户和公司完全独立。但您可以访问user.company
和company.users
。