フォームを更新しようとしていますが、送信時に次のエラーが発生しています。Rails update enum fieldsが有効ではありません
は '受け入れられた' 私はこの列挙
enum status: { submitted: 0, approved: 1, rejected: 2 }
これは、ステータスの入力である持っている私の
pdform.rb
モデルに
有効な状態ではありません。列挙型の値に受け入れられた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に設定されたデフォルトのステータスを持っていますが、私は、このフォームを送信するとき、それが出てくるフォームのテーブルのための私のスキーマファイルで有効なステータス
ではありませんゼロとして。ステータスを文字列に切り替えて、デフォルトを「サブミット」に設定する必要がありますか?このフォームを更新するにはどうしたらよいですか?
t.integer "status", default: 0
イムばか.... –
@TrentonTylerが発生します。私のソリューションが役に立つとわかった場合。 Upvote。ありがとう – krishnar
'enum'に' accepted'と 'declined'オプションを追加するのは正しいです。しかし、他の適切な方法は です。 'enum status:[:submit、:approved、:rejected、:accepted、:declined]' 'enum'を配列として設定すると、自動的に配列インデックスが割り当てられます。注文をいつでも変更することができます。 を使用し、 'form.select:status、Model.statuses.keys.map {| u |代わりに[u.titleize、u]} 'を実行します。私はそれがずっときれいだと思う。 – Aakanksha