Paperclip gem不上传文件

时间:2013-12-12 20:36:06

标签: ruby-on-rails ruby-on-rails-4 paperclip

好的,所以我已经搜索了很多答案,我想我只是遗漏了一些明显的东西,但我是RoR的新手所以请耐心等待。

我正在使用Paperclip并安装好宝石。我一直在http://railscasts.com/episodes/134-paperclip?autoplay=true跟踪有关railscasts的教程,我已完全按照说明操作,但它不起作用。

我猜这是因为不同版本的rails和强参数有关?我正在寻找上传食谱上传的图片。我检查过数据库迁移,并且所有相关列都存在。

包括以下所有内容:

recipe.rb文件:

 has_attached_file :image

_recipe_form.html.erb文件:

<%= form_for(@recipe, :html => { :multipart => true }) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <div class="field">
    <%= f.text_field :name, placeholder: "My Recipe" %>
  </div>
  <div class="field">
    <%= f.text_area :description, placeholder: "Write a description..." %>
  </div>
  <div class="field">
    <%= f.file_field :image %>
  </div>
  <%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>

recipe_controller.rb文件:

def create
  @recipe = current_user.recipes.build(recipe_params)
  if @recipe.save
    flash[:success] = "Recipe Created!"
    redirect_to @recipe
  else
    @feed_items = []
    render 'new'
  end
end

编辑:

迁移

class AddAttachmentImageToRecipes < ActiveRecord::Migration
  def self.up
    change_table :recipes do |t|
      t.attachment :image
    end
  end

  def self.down
    drop_attached_file :recipes, :image
  end
end

致电食谱

@recipe = Recipe.find(params[:id])

1 个答案:

答案 0 :(得分:1)

感谢您的帮助。我设法得到了一些外部帮助。这是一个简单的解决方案,如果我展示了参数,我相信你会发现它!

我忘了将图片添加到我的参数中,如下所示

params.require(:recipe).permit(:name, :description, :live, :image)

全部修复。谢谢!