1
我正在使用padrino构建一个网站。我使用回形针将徽标上传到其中一个模型。我遇到的问题是Paperclip不保存附件,但也不会引发任何错误。我认为传递给控制器的参数是不正确的类型,因为params[:logo]
是一个散列,应该可能是某种文件类型?我如何使Paperclip保存在参数中传递的附件?在Padrino上没有保存附件的回形针
模型:
class Charity < ActiveRecord::Base
include Paperclip::Glue
attr_accessible :name, :description, :logo
has_attached_file :logo, path: "/public/:attachment/:id/:basename.:extension"
end
该标志被设置在控制器中,像这样:
post :create do
@charity = Charity.new(params[:charity])
if @charity.save!
flash[:notice] = 'Charity was successfully created.'
redirect url(:charities, :edit, id: @charity.id)
else
render 'charities/new'
end
end
传递参数到控制器的形式如下(份为简洁起见省略):
- form_for :charity, url(:charities, :create), multipart: true, class: :form do |f|
(...)
.group
==f.label :logo
==f.error_message_on :logo
==f.file_field :logo
(...)
我正在使用Paperclip 2.7.0和Padrino 0.10.7。 我也已经加入这个的boot.rb按照Using Paperclip with Padrino:
试过了,它并没有帮助,因为该附件可如果它是一个文件进行保存,但问题是在Padrino中'params [:logo]'是一个散列,而它应该是一个文件。在Rails中,该文件作为ActionDispatch :: HTTP :: UploadedFile传递给控制器,Paperclip知道该如何处理,但不知道如何处理包含文件细节(文件名,content_type等)的散列。任何方式使Paperclip转换哈希 - >文件? – nethopp3r 2012-08-07 19:19:49
您可以改为使用亚马逊存储。或者还有另一种叫做CarrierWave的解决方案,它与sinatra兼容。你也可以找到铁轨。 – Ivan 2012-10-04 09:55:20
这有点晚,但我最终使用了CarrierWave,它的工作没有问题。不管怎么说,还是要谢谢你。 – nethopp3r 2012-10-24 17:52:10