我有一个 Ruby on Rails 应用程序,我正在使用 Ruby 1.9 和 Rails 2.3.4,我希望用户上传视频,所以我安装了 Paperclip gem,但我从 Rack 收到此错误。事实上,它说它是“无效的字节序列”,这让我怀疑它来自 Ruby 1.9。

有任何想法吗?

谢谢,

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'

表格:

<% 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

电子>

有帮助吗?

解决方案

看起来这里有一个答案:

http://rubynyc.wordpress.com/ruby-1-9-1/paperclip-triggering-a-invalid-byte-sequence-in-us-ascii/

本质上,修复方法是卸载 Rails 附带的 Rack 版本并从 github 重新安装 gem。当然,您可能想先在另一台机器上尝试一下......:-)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top