models.rb 中的枚举和包含不获取数据

Enum and inclusion in models.rb not fetching the data

你好,我是 rails

的新手

我正在尝试使用 rails 创建一个电子商务网站。参考 Agile Web 开发书。 这是order.rb

  validates :name, :address, :email, presence: true
  has_many :line_items, dependent: :destroy
  validates :pay_type, inclusion: pay_types.keys
  enum pay_type: {
    'Debit card' => 0,
    'Credit card' => 1,
    'Net Banking' => 2
  }

我遇到这样的错误

undefined local variable or method `pay_types' for #<Class:0x00007f22401067b0> 

您在使用枚举后定义了它。相反,先定义它。

  enum pay_type: {
    'Debit card' => 0,
    'Credit card' => 1,
    'Net Banking' => 2
  }

  validates :pay_type, inclusion: pay_types.keys

不需要验证。尝试使用不在枚举中的值将导致 ArgumentError。如果需要,您可能希望验证其存在。

validates :pay_type, presence: true