为用户和公司设计Cancan Cancan注册

时间:2012-02-20 21:56:33

标签: ruby-on-rails ruby ruby-on-rails-3 devise cancan

在Rails 3应用程序中,我有2个逻辑实体 - 用户和公司。 我希望有两种不同的注册形式(针对用户和公司)。此外,为他们两个登录表格也很棒。

我现在所拥有的 - 为具有两个角色(用户,公司)的用户模型配置Devise + Cancan,所以我现在有“/ users / sign_in”和“/ users / sign_up”。

我想在我的应用程序中使用以下网址:

/login
/users/signup
/companies/signup

另一个问题是如何组织用户和公司之间的关系,如果公司继承用户或我应该使用聚合 - 用户has_one公司?我更喜欢第二个变体,并计划使用cancan user role =“company”来使用user.company。

请帮帮我。感谢。

1 个答案:

答案 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.companycompany.users