代码之家  ›  专栏  ›  技术社区  ›  Trenton Tyler

Rails更新枚举字段无效

  •  2
  • Trenton Tyler  · 技术社区  · 7 年前

    我试图更新表单,但在提交时出现以下错误。

    “已接受”不是有效状态

    在我的 pdform.rb 模型我有这个枚举

    enum status: { submitted: 0, approved: 1, rejected: 2 }
    

    <div class="form-group row">
        <%= form.label :status, class: 'col-2 col-form-label' %>
        <div class="col-md-5">
          <%= form.select(:status, options_for_select([['Accepted', 'accepted'], ['Declined', 'declined']]), { include_blank: true }) %>
        </div>
      </div>
    

    “1”不是有效状态

    在表单表的模式文件中,我将默认状态设置为0,但当我提交此表单时,它显示为nil。我是否需要将状态切换为字符串并将默认值设置为“已提交”?如何更新此表单而不出现错误?

    t.integer "status", default: 0
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   krishnar    7 年前

    您的选项值为 已接受,已拒绝 枚举状态中未提及。

    枚举状态:{已提交:0,已批准:1,已拒绝:2,已接受:3, 拒绝:4}

    将表单选择选项更改为仅包含枚举中的值

      <%= form.select(:status, options_for_select([['Submitted',
     'submitted'],['Approved','approved'],['Rejected','rejected']]), {
     include_blank: true }) %>