Rails计算状态的方法是什么?

时间:2012-05-04 17:32:54

标签: ruby-on-rails database-design

当我只有两个对象的状态时,例如员工的'主动'和'退休',我会在表格用户中设置一个布尔字段来计算用户的状态。

但如果我有一个具有三个或更多状态的对象,我该怎么办?任务可以是“新的”,“进行中的”,“完成的”和“关闭的”,并且计算机可以是“订购的”,“在商店中”,“在使用中”,“在维修中”并且最终“处置”。

我可以看到几个选项:

1)附加表'状态'。状态属于任务,任务有一个状态。对我来说看起来不错,但需要额外的表格。

2)以某种方式在'users'表中有一个状态列表。不知道是否可能。我正在使用PostgreSQL。

3)确定1表示“新”,2表示“正在进行”,3表示“完成”并将这些数字用作停顿。

4)使用状态名称作为状态。将字段'status'设为字符串。

最好的Rails方式是什么?

1 个答案:

答案 0 :(得分:1)

我个人更喜欢像state_machineaasm这样的宝石,我必须为当前状态创建字符串列。所以我认为这是正确的方式,因为它可以立即为我提供有关状态的信息。