在Rails中管理简单状态

时间:2017-09-20 23:34:34

标签: ruby-on-rails

我的应用程序中的一个交互将要求用户声明三个可用会议时间之一。当会议时间被声明时,我希望它可以从视图中消失,以便以后出现以避免双重预订。如何在构建数据方面做到最好?

这是我目前的想法:

我有三个日期时间列:call_option_1,call_option_2和call_option_3

我创建了三个额外的整数列:call_option_1_status,call_option_2_status和call_option_3状态。

我基本上只需要两种状态 - 无人认领和声称。

我应该创建一个名为CallOptionStatus的模型,并使用这两个状态名称对其进行播种吗?

在rails中处理这样的简单状态的最佳方法是什么?

谢谢! 迈克尔

1 个答案:

答案 0 :(得分:0)

在这些情况下,如果您拥有更改状态的数据,则很有可能需要使用Rails枚举。例如:

#model: UserCallOption
  user_id:integer, state:integer, date:datetime


#define enum
class UserCallOption < ActiveRecord::Base
  enum status: [:claimed, :unclaimed]
end


option.status # => unclaimed
option.claimed! # status changed to `claimed`
option.status # => claimed

本文可能对您有所帮助:How do i specify and validate an enum in rails?