Rails 5,生产模式,枚举错误" ArgumentError不是有效的"

时间:2017-08-17 09:49:56

标签: ruby-on-rails ruby enums production-environment

我的模特:

class Job < ActiveRecord::Base
  enum job_type: [:point, :mass]
end

我的控制器:

Job.new job_type: 'mass'

错误日志:

ArgumentError 'mass' is not a valid job_type.

仅在生产服务器中发生。服务器重启后bug会消失,几小时后返回。

版本: Rails 5.0.0.rc1,ruby 2.3.1

1 个答案:

答案 0 :(得分:-1)

你可以使用字符串或符号作为job_type值,它可以在两者上正常工作。

class Book < ApplicationRecord
  enum name: [ :active, :archived ]
end

使用符号

Book.new(name: :archived) => #<Book id: nil, name: "archived", author_id: nil, created_at: nil, updated_at: nil>

使用字符串

Book.new(name: "archived") =&gt;

#<Book id: nil, name: "archived", author_id: nil, created_at: nil, updated_at: nil>