Проблема с отображением атрибута «size» для «file_field» с использованием Ruby on Rails 3 - PullRequest
2 голосов
/ 21 января 2011

Я использую Ruby on Rails 3, и у меня есть такая форма:

<%= form_for(@user, ... ) do |f| %>
  ...
  <%= f.file_field :avatar, :id => "test_id", :style => "display: block", :size => "13" %>
  ...
<% end %>

Когда я иду посмотреть исходный код страницы, это сгенерированный HTML-код:

<input type="file" style="display: block;" name="user[avatar]" id="test_id">

это означает, что атрибута 'size' там нет.

Я пробовал на Firefox, Chrome и Safari: один и тот же вывод, но, похоже, все настроено правильно.

Это проблема, связанная с RoR3?

Ответы [ 4 ]

3 голосов
/ 29 сентября 2011

Я на самом деле обнаружил, что атрибут size намеренно исключен из исходного кода Rails:

https://github.com/rails/rails/blob/75366cb82dc6fa4b3dada2a450dda18496f3eddd/actionpack/lib/action_view/helpers/form_helper.rb#L734

"to_input_field_tag ​​(" file ", options.update ({: size => nil})" *

Не знаю почему, но рад слышать, что вы нашли обходной путь.

2 голосов
/ 07 февраля 2013

Вот обходной путь, указав размер в стиле.

<%= f.file_field :avatar, :style=>"width: 13px" %>
1 голос
/ 02 июня 2011

Да, похоже, но ..

Я подумал о другой альтернативе: jquery ..

$('#test_id').attr('size', 1);

бинго !!

0 голосов
/ 21 января 2011

Поле size файла не может быть изменено из-за того, как браузеры выбирают их отображение, и не имеет никакого отношения к Rails.

...