我正在尝试更新表单,但在提交时遇到以下错误。
'已接受'不是有效状态
在我的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
答案 0 :(得分:1)
您的选项值已接受,已拒绝,这在枚举状态中未提及。
所以,要么将它们添加到枚举
中枚举状态:{已提交:0,已批准:1,拒绝:2,已接受:3, 谢绝了:4}
或
更改表单选择选项以仅包含枚举中的那些值
<%= form.select(:status, options_for_select([['Submitted',
'submitted'],['Approved','approved'],['Rejected','rejected']]), {
include_blank: true }) %>