Cremalheira falha com Rails quando tento fazer upload de arquivo (usando clipe de papel) no Ruby 1.9

StackOverflow https://stackoverflow.com/questions/1480416

  •  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);" />&nbsp;
            </td>
        </tr>
    </tabl

e>

Foi útil?

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
scroll top