ActiveAdmin中的Paperclip错误

时间:2014-07-31 08:51:22

标签: ruby-on-rails paperclip activeadmin

我试图使用Paperclip填写"图像" ActiveAdmin Post编辑页面上的字段。 Rails 4.0.0,Paperclip 4.2.0。在Post模型中,我添加了以下代码:

has_attached_file :image
validates_attachment :image, content_type: { content_type: [ "image/jpg", "image/jpeg", "image/png" ] }

提交表单后,我有以下错误:

  

Paperclip :: Admin :: PostsController#update中的错误

     

发布模型缺少attr_accessor需要' image_file_name'

看起来我忘了做某事。我在这一步做错了什么?好的,我已手动添加

attr_accessor :image_file_name

提交后我得到另一个错误

  

Admin :: PostsController#update中的NoMethodError

     

未定义的方法`image_content_type'对于#Post:0x007fb148266e10

我不知道如何处理这个问题。

1 个答案:

答案 0 :(得分:3)

您的模型中不需要attr_accessor。 这应该足够了。

has_attached_file :image
validates_attachment :image, content_type: { content_type: [ "image/jpg", "image/jpeg", "image/png" ] }

还需要的是数据库中的特定列。 只需添加类似于此的迁移,它应该可以正常工作。

class AddImageToPosts < ActiveRecord::Migration
  def change
    add_attachment :posts, :image
  end
end

它会添加到您的模型中:

string   "image_file_name"
string   "image_content_type"
integer  "image_file_size"
datetime "image_updated_at"