Rails更新枚举字段无效

时间:2017-09-28 16:14:16

标签: ruby-on-rails

我正在尝试更新表单,但在提交时遇到以下错误。

  

'已接受'不是有效状态

在我的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 个答案:

答案 0 :(得分:1)

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

所以,要么将它们添加到枚举

  

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

更改表单选择选项以仅包含枚举中的那些值

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