我想在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