【问题标题】:Managing simple statuses in Rails在 Rails 中管理简单状态
【发布时间】:2017-09-20 23:34:34
【问题描述】:

我的应用程序中的一次交互将要求用户声明三个可用会议时间之一。当要求会议时间时,我希望它从稍后出现的任何用户的视图中消失以避免重复预订。仅就数据结构而言,如何才能最好地做到这一点?

这是我目前的想法:

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

我创建了三个额外的整数列:call_option_1_status、call_option_2_status 和 call_option_3 status。

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

我是否应该创建一个名为 CallOptionStatus 的模型并使用这两个状态名称为其播种?

在 Rails 中处理此类简单状态的最佳方法是什么?

谢谢! 迈克尔

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    在这些情况下,您的数据会改变状态,您很有可能会想要使用 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?

    【讨论】:

      猜你喜欢
      • 2021-08-18
      • 1970-01-01
      • 2019-03-25
      • 2021-04-11
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多