Ошибка загрузки файла Rails - PullRequest
1 голос
/ 19 декабря 2011

Окружающая среда: рельсы 3.1.1-3.1.3, jruby1.6.5,

Просмотр кода:

    <%= form_for(@app_dr_dish,:multipart=>true) do |f| %>
          <%= file_field :commodity, :image %>
        <div class="actions">
          <%= f.submit(t('app_dr.submit')) %>
        </div>
    <% end %>

Параметры:

Parameters: `{"utf8"=>"鉁?,
"authenticity_token"=>"ktJJQN6iVLH8MpFE1sp7EflhQg7E5JYVYpIzr3/SEMo=",
"commodity"=>{"title"=>"", "desc"=>"", "image"=>"2.jpg", 
"price"=>""}, "commit"=>"create"}`

Информация об ошибке:

    "image"=>"2.jpg",right info should be a object instead of a string:
    "image"=>#<ActionDispatch:
    :Http::UploadedFile:0x9b26b6 @original_filename="2.jpg", @headers="Content-Disposition: form-data; name=\"attachment\"; filename=\"windowslinux.jpg\"
    \r\nContent-Type: image/jpeg\r\n", @tempfile=#<File:C:/Users/sjy/AppData/Local/Temp/RackMultipart.3752.64590>, @content_type="image/jpeg">

Если я добавлю такой кусок кода, он станет нормальным.Это ошибка или что происходит?

    <div class="field">/* view code*/
      <%= f.label :image %>
       <br/>
      <%= f.file_field  :image %>
    </div>

1 Ответ

1 голос
/ 19 декабря 2011

Не уверен, что проблема именно в том, что вы на самом деле не указываете, но я думаю, что код работает должным образом ... Возможно, вам нужно попробовать это:

f.file_field :image

Способ, как ваш оригинальный примериз части 2 вашего вопроса написан код, вам нужно будет использовать file_field_tag вместо file_field.

Прочтите документы для получения дополнительной информации о том, как использовать file_field с формойкак это .

...