Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails更新枚举字段无效_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails更新枚举字段无效

Ruby on rails Rails更新枚举字段无效,ruby-on-rails,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-la

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

“已接受”不是有效状态

在我的
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>

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

因此,要么将它们添加到enum中

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

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

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


@TrentonTyler发生了。如果我发现我的解决方案有用。向上投票。感谢您在
枚举
中添加
接受
拒绝
选项是正确的。不过,其他合适的方法是
enum status:[:submitted、:approved、:rejected、:accepted、:defeed]
设置
enum
,因为数组会自动为其分配数组索引。你可以随时改变顺序。然后改用
form.select:status,Model.statuses.keys.map{{| u |[u.titleize,u]}
。我认为它更干净。@Aakanksha是的,两种方法都有效。很高兴再次认识你。:)
  <%= form.select(:status, options_for_select([['Submitted',
 'submitted'],['Approved','approved'],['Rejected','rejected']]), {
 include_blank: true }) %>