Rails 4 ajouter file_field pour la fixation de téléchargement de formulaire existant et contrôleur

Je suis super nouvelle pour les rails. Appris quelques semaines maintenant. Veuillez excuser mon idiotie. Je ne peux pas obtenir mon fichier que j'ai choisi pour le téléchargement.

Je suis à l'aide de Rails 4.0.0.

Je suis en train de travailler sur ma première demande, et j'ai commencé en suivant les rails de guide pour l'application de blog. Je l'ai pris et a couru avec elle et je suis la création de quelque chose de différent (bug tracking system) juste essayer d'apprendre à cordes.

Donc, j'ai mon formulaire:

<%= form_for @post do |f| %>

et j'ai ajouté dans mon file_field. La partie affichage de la vue ressemble et fonctionne bien dans la mesure où la sélection d'un fichier va.

<%= f.label :attachment %>
<%= f.file_field :attachment %>

J'ai tiré cela de les rails 4 guides pour info. Donc, mon contrôleur ressemble à ceci:

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

Le nouveau morceau ici est de télécharger. Tout le reste fonctionne bien avec l'écriture/lecture de la base de données et l'affichage. Lorsque la vue est affiché je fais les entrées de texte, ci-joint un fichier et cliquez sur soumettre. Tout écrit à la base de données et les affiche sur l'index, mais le fichier que j'ai tenté de joints ne sont pas écrites dans ~/bugs/public/uploads/

Merci d'avance pour l'aide.

OriginalL'auteur kyle | 2013-08-23