im essayant de faire la valeur par défaut pour l'entrée
fonctionne bien:
<%= f.input_field :quantity, default: '1' %>
mais j'ai besoin de f.input pas f.input_field
<%= f.input :quantity %>
je l’essaye avec une valeur html standard - mais après validation, la quantité de validation est annulée de 1 - non souhaitée
<%= f.input :quantity, input_html: {value: '1'} %>
quand je supprime la valeur et que la validation est insuffisante, la quantité est renseignée - tout va bien
<%= f.input :quantity %>
comment résoudre ce problème? existe-t-il une alternative comme dans f.input_field -: default? ou existe-t-il une autre solution de valeur?
Vous pouvez essayer avec quelque chose comme ça:
<%= f.input :quantity, input_html: {value: f.object.quantity || '1'} %>
essaye ça:
= f.input : quantity, input_html: { value: (f.object.quantity.present?) ? f.object.quantity : '1' }
Vous pouvez utiliser l'option selected
de simple_form:
<%= f.input :quantity, selected: f.object.quantity || '1' %>
C'est une vieille question ... mais aucune des réponses fournies ne me semble acceptable. La meilleure façon de faire est de définir la valeur dans la nouvelle action des contrôleurs.
def new
WizBang.new(quantity: 1)
Cela affectera la clé de quantité d'objets à la valeur 1 dans la nouvelle action. L'action d'édition doit s'appuyer sur la valeur persistante de l'objet ou sur une valeur params si la validation échoue et si le formulaire est rechargé. Les autres réponses forceront la quantité à 1 lors de l'édition, même si l'utilisateur avait initialement enregistré nil (si vous autorisez nil). Pas d'accord. Je ne permettrais pas nil, mais inclurais une option 0 dans le champ quantité.
f.input :quantity, collection (0..100)
beaucoup plus propre.