Подтвердить что ты не робот

Значение по умолчанию для ввода с помощью simple_form

im пытается сделать значение по умолчанию для ввода

работает нормально:

<%= f.input_field :quantity, default: '1' %> 

но мне нужно f.input не f.input_field

<%= f.input :quantity %> 


  • im пытается использовать его со стандартным значением html - но после того, как unsucessfull количество проверки превышено на 1 - нежелательно

    <%= f.input :quantity, input_html: {value: '1'} %>
    
  • когда я удаляю значение и проверяю, что значение unsucessfull заполнено - все в порядке

    <%= f.input :quantity %>
    

как это решить? есть ли альтернатива, например, в f.input_field -: default? или есть любое другое решение со значением?

4b9b3361

Ответ 1

Вы можете попробовать что-то вроде этого:

<%= f.input :quantity, input_html: {value: f.object.quantity || '1'} %>

Ответ 2

Вы можете использовать selected опцию simple_form: <%= f.input :quantity, selected: f.object.quantity || '1' %> <%= f.input :quantity, selected: f.object.quantity || '1' %>

Ответ 3

попробуй это:

= f.input : quantity, input_html: { value: (f.object.quantity.present?) ? f.object.quantity : '1' }

Ответ 4

Это старый вопрос... но ни один из предоставленных ответов не кажется мне приемлемым. Лучший способ сделать это - установить значение в новом действии контроллеров.

 def new
   WizBang.new(quantity: 1)

Это присвоит ключу количества объектов значение 1 в новом действии. Действие редактирования должно опираться на постоянное значение объекта или значение params, если проверка завершилась неудачно и форма перезагружена. Другие ответы приведут к значению 1 при редактировании, даже если пользователь изначально сохранил ноль (если вы разрешите ноль). Не хорошо. Я бы не допустил nil, но включил бы опцию 0 в поле количества.

f.input :quantity, collection (0..100)

намного чище

Ответ 5

Ты можешь сделать

<%= f.input :quantity, value: f.object.quantity || '1' %>

В настоящее время input_html ключ input_html.