2011-12-19 3 views
1

Enviroment: рельсы 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 %> 

Params:

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

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

f.file_field :image 

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

Read the docs for more info on how to use the file_field with a form like this.

Смежные вопросы