我对rails超级陌生。已经学了几个星期了。请原谅我的白痴。我无法获取我选择上传的文件。
我正在使用 Rails 4.0.0。
我正在开发我的第一个应用程序,我从遵循博客应用程序的 Rails 指南开始。我拿着它跑了,正在创造一些不同的东西(错误跟踪系统),只是想学习绳索。
所以,我有我的表格:
<%= form_for @post do |f| %>
我已经在我的 file_field 中添加了。就选择文件而言,视图中的显示部分看起来和工作良好。
<%= f.label :attachment %>
<%= f.file_field :attachment %>
我已经从 Rails 4 指南中拉出这个,仅供参考。所以我的控制器看起来像这样:
class PostsController < ApplicationController
def new
@post = Post.new
end
def create
@post = Post.new(params[:post].permit(:title, :text, :user, :screen))
if @post.save
redirect_to posts_path
else
render 'new'
end
end
def show
@post = Post.find(params[:id])
end
def index
@posts = Post.all
end
def edit
@post = Post.find(params[:id])
end
def update
@post = Post.find(params[:id])
if @post.update(params[:post].permit(:title, :text, :user, :screen))
redirect_to posts_path
else
render 'edit'
end
end
def destroy
@post = Post.find(params[:id])
@post.destroy
redirect_to posts_path
end
def upload
uploaded_io = params[:post][:attachment]
File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'w') do |file|
file.write(uploaded_io.read)
end
end
private
def post_params
params.require(:post).permit(:title, :text, :user, :screen, :attachment)
end
end
这里的新作品是上传。其他一切都可以从数据库中写入/读取并显示。当视图显示时,我输入文本,附加文件并点击提交。一切都写入数据库并显示在索引上,但我尝试附加的文件没有写入 ~/bugs/public/uploads/
在此先感谢您的帮助。