【发布时间】:2012-12-03 16:12:44
【问题描述】:
我想在 Rails 3.2.8 上使用 tag_form 制作一个简单的文件上传器。
但是当我尝试提交图像文件时,我收到一条错误消息
错误消息(当我尝试提交图像文件时)
CoursesController 中的 NoMethodError#attachment
“2012-03-02 21.53.55.jpg”的未定义方法“original_filename”:字符串
----- BEGIN P.S.(20121216 19:32) -----
要么
错误消息(当我在 show.html.erb 上添加“:multipart => true”时)
CoursesController#attachment 中的编码::UndefinedConversionError
"\xFF" 从 ASCII-8BIT 到 UTF-8
----- 结束-----
似乎程序将文件视为字符串?
视图文件可能有问题。
如果您能帮我解决这个问题,我将不胜感激。这是我的代码。
app/view/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 %>
app/controller/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
config/routes.rb
resources :courses, :only => [ :show ] do
member do
post :attachment
end
end
【问题讨论】:
标签: ruby-on-rails forms tags ruby-on-rails-3.2