измените размер и максимальную длину, разрешенные для поля в simple_form

#ruby-on-rails #simple-form

#ruby-on-rails #простая форма

Вопрос:

Как я могу изменить размер и максимально допустимые символы для поля, используя простые формы. Я пробовал следующее, но не работает:

 <%= f.input :lastname, :size => 40, :max => 4 %>
  

Я знаю, что есть default_input_size в initializers/simple_form.rb , однако я не хочу изменять размер глобально, а только для нескольких полей.

Как бы мне это сделать?

Комментарии:

1. Чем так хороша простая форма?.. Это было бы как f.text_filed :last_name, :size => 40, :maxlength => 4 в обычных Rails. Еще проще?!

2. @rubyprince simpleform f.input также заботится о (переведенной) метке и других приятных функциях, которые в противном случае вам пришлось бы реализовывать вручную.

Ответ №1:

 <%= f.input :lastname, input_html: { maxlength: 15, size: 40} %>
  

Комментарии:

1. также я бы предпочел «новый» синтаксис = f.input :lastname, input_html: {maxlength: 15, size: 100} (в haml)

Ответ №2:

попробуйте использовать <%= f.input :lastname, :input_html => {:size => 40, :maxlength => 4} %>

Комментарии:

1. Этот ответ теперь является дублирующим, хотя и более правильным, поскольку он копирует значения из OP.

Ответ №3:

Или попробуйте использовать CSS <%= f.input :lastname, :input_html => {:style => 'width: 250px'} %>

Ответ №4:

Добавление размера и максимальной длины в input_html не имело для меня никакого эффекта. Я использую «input_field» вместо «input». Итак, сработало следующее:

 <%= form.input_field :effective_from_date,
                     as: :string,
                     class: 'activate-datepicker',
                     maxlength: 11,
                     size: 11,
                     label: false %>
  

Ответ №5:

Возможно, вы объявили, что в вашем css для ширины ввода установлено значение «auto». Удалите это объявление, а затем настройте.