rails association有一个

时间:2012-04-12 10:09:12

标签: ruby-on-rails associations

我有麻烦需要你的帮助: 有1个模型Employee,其中1个属性为“employee_type”。一名员工只有一种类型。有3种类型的员工(“初学者”,“正常”,“职业”,未来可能会增加)。所以我认为有三种方法可以实现它。

  1. employee_type属性是字符串类型,它是“初学者”,或“正常”或“专业”。然后在帮助器中,我需要在选择框视图中为显示3类型定义方法。通过这种方式,缺点是“每当我想添加更多类型时,我必须插入原始代码”
  2. 创建employee_type表,只有3条记录“beginner”,“normal”,“pro”。 employee_type属性是整数类型,它保存employee_type表记录的id。 employee表和employee_type表没有任何关联。通过这种方式,优点是易于插入更多类型。缺点是“如果我想找到员工类型,我必须运行EmployeeType.find(employee.employee_type)”
  3. 创建employee_type表,它与employee有关系1-1并使用has_one。通过这种方式,可以通过employee.employee_type轻松找到员工类型。缺点是难以管理多少类型的员工
  4. 有没有比他们更好的方法?

    非常感谢

1 个答案:

答案 0 :(得分:2)

这是一对多的情况。您必须使用以下方案:

class Employee < ...
  belongs_to :employee_type

class EmployeeType < ...
  has_many :employees