【发布时间】:2016-06-21 08:16:36
【问题描述】:
我有一个基于 Rails3 和 Ruby1.9 的应用程序。我想上传一个文件。我一直在尝试一个简单的解决方案,我在这里的几个帖子中遇到过。
表格
=form_for :upload, :html => {:multipart => true} do |f|
= f.file_field :my_file
= f.submit "Upload"
控制器
def file_upload
path = File.join("public/", upload["my_file"].original_filename)
File.open(path, "wb") { |f| f.write(upload["my_file"].read) }
end
路线
root :to => "pages#index"
resources :pages do
collection {post :file_upload}
end
当我点击“上传”时,我没有收到任何错误,但文件没有上传到公共目录中。我错过了什么?
【问题讨论】:
-
显示您用于创建该表单的控制器操作,以及您的路线。
-
嗨@smathy 谢谢你的回复。我添加了路由并更正了表单的名称 (:upload) 以与控制器操作 (upload["my_file"]) 保持一致。
-
您仍然没有显示
renders 表单的控制器方法。您正在展示旨在从表单接收 POST 的控制器方法,但我要求查看呈现表单的控制器方法。 -
我明白了,据我所知,这就是我所缺少的。我还没有创建渲染表单的方法。你能举个例子吗?
-
你应该从Getting Started Guide开始