Cremalheira falha com Rails quando tento fazer upload de arquivo (usando clipe de papel) no Ruby 1.9
-
18-09-2019 - |
Pergunta
Eu tenho um aplicativo Ruby on Rails Eu estou usando Ruby 1.9 e Rails 2.3.4 e quero que os usuários enviem vídeos assim que eu instalei Paperclip gem, mas eu estou recebendo este erro de Rack. O fato de que ele diz que é "seqüência de byte inválido" me faz suspeitar que é de Ruby 1.9.
todas as idéias?
Obrigado,
Tam
Rendering posts/new
Rendered posts/_form (4.5ms)
Rendered layouts/_footer (13.5ms)
Completed in 238ms (View: 161, DB: 8) | 200 OK [http://localhost/posts/new]
/!\ FAILSAFE /!\ 2009-09-25 17:26:06 -0700
Status: 500 Internal Server Error
invalid byte sequence in US-ASCII
/Users/tammam56/.gem/ruby/1.9.1/gems/rack-1.0.0/lib/rack/utils.rb:324:in `=~'
/Users/tammam56/.gem/ruby/1.9.1/gems/rack-1.0.0/lib/rack/utils.rb:324:in `block in parse_multipart'
/Users/tammam56/.gem/ruby/1.9.1/gems/rack-1.0.0/lib/rack/utils.rb:319:in `loop'
/Users/tammam56/.gem/ruby/1.9.1/gems/rack-1.0.0/lib/rack/utils.rb:319:in `parse_multipart'
/Users/tammam56/.gem/ruby/1.9.1/gems/rack-1.0.0/lib/rack/request.rb:141:in `POST'
A forma:
<% form_for @post, :html => {:multipart => true} do |f| %>
<table width='100%' border="1">
<tr>
<td colspan="2">
<h2>Post your Story</h2>
</td>
</tr>
<tr>
<td nowrap="nowrap" width="20%">
<p class="new_post_labels">I'm single bacause </p>
<div id='ErrorMessage_title'></div>
</td>
<td>
<%= f.text_field :title, :class => "grayInput fromInputPost", :maxLength =>100, :size => "50" %>
</td>
</tr>
<tr>
<td nowrap="nowrap" width="20%" valign="top">
<p class="new_post_labels">Story Details (maximum 500 characters) </p>
<div class="char_counter_new" id='actual_msg_count'>0/500</div>
<div id='ErrorMessage_description'></div>
</td>
<td>
<%= f.text_area :description, :id => 'the_message_textarea', :size => "45x5", :class => "grayInput fromInputPostArea", :onkeyup => "calculate_msg_char_counter();", :id => "the_message_textarea" %>
</td>
</tr>
<tr>
<td nowrap="nowrap" width="20%">
<p class="new_post_labels">Video URL(optional - 90 seconds max)</p>
</td>
<td>
<%= f.file_field :video %>
<%= f.text_field :video_link, :class => "grayInput fromInputPost", :maxLength =>255, :size => "50" %>
</td>
</tr>
<tr>
<td>
</td>
<td align="left" nowrap="nowrap">
<p class="new_post_labels"><%= f.check_box :is_notify_when_comment %>Email me when someone comments on my story</p>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="button" value="Submit the Story" class="btnSubmitNewUser" onClick="validate_fields(this.form);" />
</td>
</tr>
</tabl
e>
Solução
Parece que há uma resposta aqui:
http://rubynyc.wordpress.com/ruby-1-9-1/paperclip-triggering-a-invalid-byte-sequence-in-us-ascii/
Essencialmente, a correção é para desinstalar a versão de rack que vem com o Rails e reinstalar o gem do github. Claro, você pode querer experimentar isso em outra máquina primeira ...: -)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow