Rails 4.0.1中的Paperclip undefined方法`title_file_name'错误

时间:2013-12-02 10:03:45

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

我按照paperclip github页面上的手册安装了它,我得到了给定的错误。我做错了什么?

我有4个输入字段:标题(text_field),说明(text_area),价格(text_field)和图片(file_field)。为什么我甚至会在前缀title中收到此错误? title字段与它有什么关系,是否有任何冲突?我确实创建并运行了迁移,所以我觉得这很奇怪。

任何帮助表示赞赏。感谢。

编辑:

迁移如下:

class AddImageColumnsToProducts < ActiveRecord::Migration
  def change
    add_attachment :products, :image
  end
end

结果如下:

image_file_name varchar(255)
image_content_type varchar(255) 
image_file_size int(11)
image_updated_at datetime

enter image description here

型号:

class Product < ActiveRecord::Base
    has_attached_file   :image, :styles => { :medium => "600x600>", :thumb => "258x258>" }, 
                        :default_url => "images/:style/:slug.png"
    validates :title, :content, :image, :attachment_presence => true
    validates_with AttachmentPresenceValidator, :attributes => :image
end

控制器:

  def create
    @product = Product.new(product_params)
    @product.image = params[:product][:image]

    respond_to do |format|
      if @product.save
        format.html { redirect_to @product, notice: 'Product was successfully created.' }
        format.json { render action: 'show', status: :created, location: @product }
      else
        format.html { render action: 'new' }
        format.json { render json: @product.errors, status: :unprocessable_entity }
      end
    end
  end

1 个答案:

答案 0 :(得分:1)

问题在于您的验证。这句话说

validates :title, :content, :image, :attachment_presence => true 

假设标题,内容和&amp;图像为3个基于图像的属性。但是,据我所知,只有'图像'是基于图像的领域。所以,你的代码应该是:

validates :title, :content, :presence=>true
validates :image, :attachment_presence => true 

另外,我没有在请求日志中看到“内容”字段。我想,你的意思是'描述'。确保在模型验证,数据库模式和模型中具有相同的属性名称。查看文件。