ruby-on-rails – Rails 4为附件上传添加file_field到现有表单和
我是铁杆的新手.现在已经学习了几个星期.请原谅我的愚蠢.我无法获取我选择上传的文件.
我正在使用Rails 4.0.0. 我正在处理我的第一个应用程序,我开始遵循博客应用程序的rails指南.我接受了它,并与它一起运行,并创建了一些不同的(错误跟踪系统),只是试图学习绳索. 所以,我有我的表格: <%= form_for @post do |f| %> 我已经在我的file_field中添加了.视图中的显示部分看起来并且在选择文件时效果很好. <%= f.label :attachment %> <%= f.file_field :attachment %> 我已经从导轨4指南FYI中取出了这个.所以我的控制器看起来像这样: 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,: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,:screen,:attachment) end end 这里的新作品是上传.通过从数据库中读取和读取并显示,其他所有工作都正常.当显示视图时,我创建文本条目,附加文件并点击提交.一切都写入数据库并显示索引,但我试图附加的文件没有写入?/ bugs / public / uploads / 在此先感谢您的帮助. 解决方法
我认为问题可能是:attachment属性不是“创建”或“更新”操作中的允许参数.
编辑:我做简单文件上传的方式是Paperclip宝石 – 这个railscast解释得很好.它真的很容易使用. 还有this answer可能会回答这个问题. 此外,使用强参数的标准方法是在私有方法中定义允许的参数并在控制器操作中调用该方法(因此您不必重复自己).这可能是错误的原因. 例: def create @post = Post.new(post_params) ... end 希望有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |