我正在使用rails 4,我有这个代码。
我创建了一个控制器并将其命名为upload(upload_controller.rb)
我把这段代码放进去了:
class UploadController < ApplicationController
def index
render :file => 'app\views\upload\uploadfile.rhtml.erb'
end
def uploadFile
post = DataFile.save(params[:upload])
render :text => "File has been uploaded successfully"
end
end
我的模型叫做data_file.rb。代码如下:
class DataFile < ActiveRecord::Base
attr_accessor :upload
def self.save(upload)
name = upload['datafile'].original_filename
directory = "public/data"
# create the file path
path = File.join(directory, name)
# write the file
File.open(path, "wb") { |f| f.write(upload['datafile'].read) }
end
end
我的视图文件名为uploadFile.html.erb。我的代码如下:
<h1>File Upload</h1>
<%= form_tag({:action => 'uploadFile'}, :multipart => true) do %>
<p><label for="upload_file">Select File</label>
<%= file_field 'upload', 'datafile' %></p>
<%= submit_tag "Upload" %>
<% end %>
我拥有此代码的主要目标是让用户可以将文件上传到指定位置。文件类型必须是任何东西,不仅仅是图像,而是doc,excel表等。一旦我编写这个代码,我做捆绑安装然后我做rake db:migrate,我去工具并运行开发。一旦我这样做,我去firefox并输入localhost:3000,页面无法显示。 (指导我到雅虎搜索或其他)。
我不知道我在这里做错了什么。我想添加宝石或改变某一行或什么?我已经坚持这个问题好几天了,我只想继续我的网页的下一部分。请帮我。谢谢。