rails paperclip:上传的文件未存储

时间:2011-07-16 15:31:33

标签: ruby-on-rails file upload paperclip

我正在使用Rails插件'paperclip'迈出第一步,因此观看了RailsCast#134:http://railscasts.com/episodes/134-paperclip

除了我正在运行rails 3.0.9并通过将其添加到Gemfile而安装了paperclip(2.3.15)之外,其他方面都是相同的。

直到演出3点,一切正常。但是在重新加载节目页面后,我得到了“缺失”的图像,而不是上传的图像。此外,在'public'目录中没有创建任何新内容。

任何提示?

更新:根据要求提供相关代码:

Gemfile:
…
gem 'paperclip'
gem 'rails', '3.0.9'
…

config/routes.rb:
Foobar::Application.routes.draw do
  resources :books
end

app/models/book.rb:
class Book < ActiveRecord::Base
  has_attached_file :cover
  attr_accessor :cover_file_name
end

app/controllers/books_controller.rb:
# nothing changed here after scaffolding

app/views/books/_form.html.erb:
<%= form_for(@book, :html => { :multipart => true}) do |f| %>
…
<div class="field">
  <%= f.file_field :cover %>
</div>

app/views/books/show.html.erb:
…
<%= image_tag «book.cover.url %>
…

db/migrate/..._create_books.rb:
class CreateBooks < ActiveRecord::Migration
  def self.up
    create_table :books do |t|
      t.string :name

      t.timestamps
    end
  end

  def self.down
    drop_table :books
  end
end

db/migrate/..._ad_attachment_cover_to_book.rb:
class AddAttachmentCoverToBook < ActiveRecord::Migration
  def self.up
    add_column :books, :cover_file_name, :string
    add_column :books, :cover_content_type, :string
    add_column :books, :cover_file_size, :integer
    add_column :books, :cover_updated_at, :datetime
  end

  def self.down
    remove_column :books, :cover_file_name
    remove_column :books, :cover_content_type
    remove_column :books, :cover_file_size
    remove_column :books, :cover_updated_at
  end
end

在使用脚手架“书”后,我开始使用“rails generate paperclip book cover”

2 个答案:

答案 0 :(得分:2)

我认为attr_accessor :cover_file_name会为具有相同名称的表列创建冲突。尝试删除该行。找不到任何可能导致任何问题的事情。

答案 1 :(得分:-1)

人们我认为我已经给出了解决方案,当你出现这个错误是因为封面栏没有权限进入这个是在params_article文章的控制器中解决了只能操纵标题和身体到这个也添加对于我的栏目封面我就像这样

Def articulo_params params.require (: article) .permit (: title,: body,: cover)
End