我想在Rails 3.2.8上使用tag_form創建一個簡單的文件上傳器。
但是,當我嘗試提交一個圖像文件,我得到一個錯誤說
錯誤信息(當我嘗試提交一個圖像文件)在CoursesController#附件
不確定通過Ruby on Rails上的form_tag表單上傳文件
NoMethodError方法`original_filename」爲 「2012-03-02 21.53.55.jpg」:字符串
----- BEGIN PS(20121216 19:32)-----
或 錯誤消息(當我添加 「:多=>真」 上show.html.erb)
編碼:: UndefinedConversionError在CoursesController#附着
「\ XFF」 從ASCII-8BIT到UTF-8
----- END PS -----
看來,程序認爲該文件爲字符串?
視圖文件中可能存在一些問題。
如果你幫我解決這個問題,我會很感激。這是我的代碼。
應用程序/視圖/ show.html.erb
<%= form_tag(attachment_course_path, :action=>'attachment') do %>
<div class="field">
<%= label_tag :file %>
<%= file_field_tag :file %>
</div>
<div class="actions">
<%= submit_tag 'Submit' %>
</div>
<% end %>
應用程序/控制器/ courses_controller.rb
def attachment
t = Time.now.strftime("%Y%m%d%H%M%S")
uploaded_io = params[:file]
File.open(Rails.root.join('public', 'upload', uploaded_io.original_filename), 'w') do |file|
file.write(uploaded_io.read)
end
end
配置/ routes.rb中
resources :courses, :only => [ :show ] do
member do
post :attachment
end
end
首先,謝謝你的幫助!我很感激。 我添加了「:multipart => true」,現在看起來像這樣: <%= form_tag(attachment_course_path,:action =>'attachment',:multipart => true)do%> 現在, 。 > CoursesController中的編碼:: UndefinedConversionError#附件 >從ASCII-8BIT到UTF-8的「\ xFF」 您知道解決方案嗎? – wiz
問題解決。謝謝。 http://stackoverflow.com/questions/13909812/error-ruby-on-rails-encodingundefinedconversionerror-in-coursescontrollerat – wiz