我一直在考虑这个问题,虽然它看起来很简单,但我似乎无法真正“正确”地理解它。我有,基本上,是两个类,公司和员工。它被设置为一个公司有_许多员工,并且员工属于一个公司。我也使用 STI,所以我有公司 < 用户和员工 < 用户。这一切都已经足够好了。现在,员工只能做两件事:查看自己的个人资料并进行更新。另一方面,公司可以创造员工。在应用程序中,这是创建员工的唯一方法。我的问题是我想让它尽可能简单,同时考虑我可能会在某个时候制作一个 API。所以我的问题是什么被认为是好的做法?我应该让员工成为公司下的嵌套资源吗?我应该在公司命名空间下创建员工资源吗?我是否应该将所有操作保留在 employees_controller 中,然后使用权限允许公司访问它们?似乎我尝试的一切最终都感觉“不对劲”。
问问题
341 次
1 回答
0
根据您的要求,似乎有两种类型的用户:普通用户(不是员工)和员工。Rails 模型之间有一个belongs_to
和has_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
于 2012-08-31T15:04:24.890 回答