我按照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
型号:
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
答案 0 :(得分:1)
问题在于您的验证。这句话说
validates :title, :content, :image, :attachment_presence => true
假设标题,内容和&amp;图像为3个基于图像的属性。但是,据我所知,只有'图像'是基于图像的领域。所以,你的代码应该是:
validates :title, :content, :presence=>true
validates :image, :attachment_presence => true
另外,我没有在请求日志中看到“内容”字段。我想,你的意思是'描述'。确保在模型验证,数据库模式和模型中具有相同的属性名称。查看文件。