Rails,建模公司/员工关系



我已经考虑了一段时间,虽然它看起来很简单,但我似乎并不能真正做到"正确"。基本上,我有两个班,公司和员工。它是这样设置的,即一个公司有_many个雇员,而雇员属于一个公司。我也使用STI,所以我有那个公司<用户和员工<使用者所有这些都足够好了。现在,员工只能做两件事:查看自己的个人资料并更新。另一方面,公司可以创建员工。在应用程序中,这是创建员工的唯一方法。我的问题是,我想让它尽可能简单,同时也考虑到我可能会在某个时候制作一个API。所以我的问题是,在这里什么是好的做法?我应该将"员工"作为"公司"下的嵌套资源吗?我应该在Companies命名空间下创建Employees资源吗?我应该把所有操作都保存在employees_controller中,然后使用权限允许公司访问它们吗?似乎我尝试的每一件事最终都感觉"不对"。

根据您的询问,似乎有两种类型的用户:普通用户(不是雇员)和雇员。Rails在模型之间具有belongs_tohas_many关系。因此,对于你可以做的公司:

class Company < ActiveRecord::Base
   has_many :users, :dependent => :destroy

class User < ActiveRecord::Base
   attr_accessible :is_employee
   belongs_to : company

User模型中,有一个列名is_employee,用于存储布尔值。这样,您就可以同时拥有雇员和非雇员。在Company中,如果Company被破坏,其Users将消失。

有关这些关系的更多文档可以在此处找到:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

最新更新