Сбой Rack с Rails при попытке загрузить файл (с помощью скрепки) на Ruby 1.9
-
18-09-2019 - |
Вопрос
У меня есть приложение Ruby on Rails, я использую Ruby 1.9 и Rails 2.3.4, и я хочу, чтобы пользователи загружали видео, поэтому я установил Paperclip gem, но я получаю эту ошибку от Rack.Тот факт, что там написано, что это "недопустимая последовательность байтов", заставляет меня подозревать, что это из Ruby 1.9.
есть какие-нибудь идеи?
Спасибо,
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'
Форма:
<% 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>
Решение
Похоже, здесь есть ответ:
http://rubynyc.wordpress.com/ruby-1-9-1/paperclip-triggering-a-invalid-byte-sequence-in-us-ascii/
По сути, исправление заключается в удалении версии Rack, которая поставляется с Rails, и переустановке gem с github.Конечно, возможно, вы захотите сначала попробовать это на другой машине...:-)
Не связан с StackOverflow