标签: paperclip

Paperclip::AdapterRegistry::NoHandlerError(未找到“”的处理程序)

我是回形针宝石的新手,所以请原谅我,但我已经花了两个小时的大部分时间在这上面,但没有任何进展(我已经观看了它的轨道广播):

我的 Rails 应用程序有一个带有回形针附件的模型:

class Foo::Bar < ActiveRecord::Base
  attr_protected  :id
  has_attached_file :mydocument
end
Run Code Online (Sandbox Code Playgroud)

每当我尝试提交带有此附件的空白文件字段的表单时,我都会收到以下错误:

Paperclip::AdapterRegistry::NoHandlerError: No handler found for ""
Run Code Online (Sandbox Code Playgroud)

我是什么做的?(我安装了 ImageMagick 并在我的环境文件中指定Paperclip.options[:command_path] = 'C:\Program Files\ImageMagick-6.8.4-Q16',但我认为这在这种情况下应该会有所不同。)

我已卸载并重新安装回形针。我已经重新启动了计算机。我在同事的计算机上运行该应用程序,但没有收到错误。但在我的机器上,我仍然收到错误。

ruby-on-rails paperclip

2
推荐指数
1
解决办法
1万
查看次数

回形针私人文件

有没有办法将回形针附件设为私有?就像我明确希望用户能够访问文件的地方一样,用户可以访问该文件.

显然该文件不能在公共目录中,但是如何在尝试访问该文件时检查用户的访问权限?

ruby-on-rails paperclip ruby-on-rails-plugins

1
推荐指数
1
解决办法
1513
查看次数

让Paperclip在Rails中工作

我已经安装了Paperclip插件,试图上传我的kase模型的头像.由于某种原因,选择文件按钮显示,我可以选择一个文件 - 但是当我点击更新kase时 - 它将我带到显示页面,但是miss.png而不是所选图像.

kase.rb

class Kase < ActiveRecord::Base
def self.all_latest
find(:all, :order => 'created_at DESC', :limit => 5)
end
def self.search(search, page)
paginate :per_page => 5, :page => page,
:conditions => ['name like ?', "%#{search}%"],
:order => 'name'
end
 # Paperclip
 has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }
end
Run Code Online (Sandbox Code Playgroud)

kases_controller.rb

# GET /kases/new
# GET /kases/new.xml
def new
 @kase = Kase.new

respond_to do |format|
  format.html # new.html.erb
  format.xml  { render :xml => @kase …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails paperclip ruby-on-rails-plugins

1
推荐指数
1
解决办法
844
查看次数

Rails + Dragonfly gem:基于ActiveRecord对象属性将图像保存在目录结构中

我正在使用dragonfly gem来管理我的rails应用程序中的图像和附件,我需要根据我的用户模型将图像存储在特定的目录结构中.让我说我的用户模型有一个名字,每个用户有很多专辑,也有一个名字,然后我希望图像存储在 "#{RAILS_ROOT}/public/system/#{user.name}/#{user.album.name}/#{suffix}"

我设法改变了龙飞的root_path,我甚至覆盖了relative_storage_path,如下所示:

class MyDataStore < Dragonfly::DataStorage::FileDataStore
  private
   def relative_storage_path(suffix)
    "#{suffix}"
   end
end
Run Code Online (Sandbox Code Playgroud)

但尽管如此,我不知道我怎么可以通过ActiveRecord的对象属性,如user.nameuser.album.namerelative_storage_path 创建我的理想路径.

你知道我怎么做这样的事吗?

ruby ruby-on-rails image paperclip dragonfly-gem

1
推荐指数
1
解决办法
3462
查看次数

保存后何时更新记录?

我正在使用回形针将文件附加到我的模型中.我想要做的是,在保存模型并将文件写入磁盘后,我需要更新模型中关于文件的另一个属性(CRC).由于回形针在调用.save之后才将文件写入磁盘,我首先想到的是使用after_save回调.当我这样做时,我得到一个"SystemStackError(堆栈级别太深):"错误.然后我尝试做一个after_commit回调,似乎工作得更好一点.例如,如果我只是给我的crc分配:

self.crc = "TEST"
self.save
Run Code Online (Sandbox Code Playgroud)

这有效.但是,如果我尝试做我的真实作业,请使用:

self.crc = "0x" + IO.read(self.patchfile.path, 4, 0x20).unpack("H8").join
self.save
Run Code Online (Sandbox Code Playgroud)

WEBrick中止:

/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/libruby.so.1.9(+0x180048) [0x290048]
/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/libruby.so.1.9(rb_yield+0x56) [0x294c46]

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Aborted
Run Code Online (Sandbox Code Playgroud)

所以我在想我做错了......

ruby-on-rails paperclip

1
推荐指数
1
解决办法
2002
查看次数

使用rails_admin(Attachment_fu,Carrierwave等)进行多个图像上传?有解决方案吗

我正在寻找一种使用Rails Admin在一个模型上拥有多个附件的简单方法.我已经将Paperclip工作了,但我需要多个图像,而不仅仅是一个.

任何提示/想法/链接?

非常感谢你!

奥勒

attachment-fu ruby-on-rails paperclip carrierwave rails-admin

1
推荐指数
1
解决办法
3268
查看次数

载波直接上没有update_attribute方法

所以我正在使用载波直接,我正处于需要更新上传器对象的"key"属性的位置.这是文档中的相关行:

上传到S3后,您需要使用与new_user_url对应的控制器操作中返回的密钥更新上传器对象:

@uploader.update_attribute :key, params[:key]
Run Code Online (Sandbox Code Playgroud)

问题是我的@uploader对象没有update_attribute方法.实际上,当我查看@uploader对象上的所有方法时,我看到的方法如key()和key =(),但没有update_attribute.

知道发生了什么事吗?我是否错过了为使update_attribute方法可用而需要执行的一些设置步骤?

ruby-on-rails amazon-s3 paperclip carrierwave

1
推荐指数
1
解决办法
780
查看次数

删除回形针图像Active Admin

我希望能够使用Active_admin中的formtastic删除编辑表单中的图像.有很多关于此的帖子,但由于某些原因我似乎无法使其符合我的设置.

我有一个Post模型和一个NewsImages模型,其中包含每个帖子的图像:

class Post < ActiveRecord::Base

  has_many :news_images, dependent: :destroy
  accepts_nested_attributes_for :news_images, allow_destroy: true

end


class NewsImage < ActiveRecord::Base
  belongs_to :post
  has_attached_file :photo

end
Run Code Online (Sandbox Code Playgroud)

因此,根据我所读的内容,可以将一个标志添加到我的NewsImage模型中,并使用之前的保存方法来删除该图像.我设想它看起来像这样,但单击复选框时不会删除图像.

#/admin/post.rb
  f.has_many :news_images do |p|
    if p.object.new_record?
      p.input :photo, as: :file
    else
    p.input :photo, as: :file, :hint => p.template.image_tag(p.object.photo.url(:thumb))
    p.input :remove_image, as: :boolean, required: :false, label: 'Remove image'

    end
  end 
Run Code Online (Sandbox Code Playgroud)

在此阶段我在控制台中注意到的一点是,当单击进出复选框时,它的值不会更改为选中或取消选中; 应该是吗?

NewsImage模型现在看起来像

class NewsImage < ActiveRecord::Base
  before_save :remove_photo
  belongs_to :post

  private

  def remove_photo
    self.photo.destroy if self.remove_image == '1'
  end

end …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails paperclip formtastic activeadmin

1
推荐指数
1
解决办法
2065
查看次数

如何禁用paperclip文件扩展名限制?

我想根据自己的需要删除上传文件的内容类型限制.我试过这个:

validates_attachment_content_type :attachment, :content_type => ['/\Aimage\/.*\Z/', 'application/*']
Run Code Online (Sandbox Code Playgroud)

但这不起作用,我应该做些什么来允许所有文件类型上传?

谢谢.

ruby file-upload ruby-on-rails paperclip ruby-on-rails-4

1
推荐指数
1
解决办法
960
查看次数

Rails 3 Wicked PDF - 包括Paperclip S3 pdf文件

我有一个使用这些宝石的Rails 3应用程序:

gem 'paperclip'
gem 'wicked_pdf'
gem 'combine_pdf'
Run Code Online (Sandbox Code Playgroud)

我正在用wicked_pdf一个pdf打开costproject.该costproject有所谓的HTML页面viewproject.pdf.erb.

我正在尝试将邪恶的pdf与costproject附件合并为一个pdf.

这是我的控制器代码:

  def viewproject
    @costproject = Costproject.find(params[:costproject_id])
    respond_to do |format|
      format.html
      format.pdf do
        pdf = CombinePDF.new
        pdf2 = render_to_string pdf: "Costproject.pdf", template: "costprojects/viewproject", encoding: "UTF-8"
        pdf << CombinePDF.new(pdf2)
        @costproject.attachments.each do |attachment|
          pdf << CombinePDF.new(attachment.attach.path)
        end
        send_data pdf.to_pdf, :disposition => 'inline', :type => "application/pdf"
      end
    end
  end
Run Code Online (Sandbox Code Playgroud)

这条线pdf << CombinePDF.new(pdf2)给了我:

string contains null byte
Run Code Online (Sandbox Code Playgroud)

如果我看一下pdf2,就会这样开始 - 所以它看起来像一个pdf:

>> pdf2
=> "%PDF-1.4\n1 0 …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails paperclip wicked-pdf

1
推荐指数
1
解决办法
873
查看次数