我对 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/
先谢谢您的帮助。