入力のデフォルト値をしようとしています
大丈夫:
<%= f.input_field :quantity, default: '1' %>
しかし、私はf.input_fieldではなくf.inputが必要です
<%= f.input :quantity %>
標準のhtml値で試してみます-ただし、検証成功が不十分な場合は1で上書きされます-望ましくない
<%= f.input :quantity, input_html: {value: '1'} %>
値を削除して検証が成功しなかった場合、すべての数量が読み込まれます-すべては大丈夫です
<%= f.input :quantity %>
これを解決する方法は?f.input_fieldのような代替があります-:デフォルト?または値?を持つ他のソリューションがありますか?
次のようなものを試すことができます:
<%= f.input :quantity, input_html: {value: f.object.quantity || '1'} %>
Simple_formのselected
オプションを使用できます:<%= f.input :quantity, selected: f.object.quantity || '1' %>
できるよ
<%= f.input :quantity, value: f.object.quantity || '1' %>
最近では、input_html
キー。
これを試して:
= f.input : quantity, input_html: { value: (f.object.quantity.present?) ? f.object.quantity : '1' }
これは古い質問です...しかし、提供された答えはどれも私には受け入れられないようです。これを行う最良の方法は、コントローラーの新しいアクションに値を設定することです。
def new
WizBang.new(quantity: 1)
これにより、オブジェクトの数量キーが新しいアクションの値1に割り当てられます。編集アクションは、オブジェクトの持続値、または検証が失敗してフォームが再ロードされた場合はparams値に依存する必要があります。他の回答では、ユーザーが最初にnilを保存した場合でも(nilを許可している場合)、編集時に数量が1になります。よくない。私はnilを許可しませんが、数量フィールドに0オプションを含めます。
f.input :quantity, collection (0..100)
ずっときれい。