Tag: 回形针

使用关联模型重命名图像 – Paperclip

码 在我的图像模型中: has_attached_file :pic before_post_process :rename_pic before_save ->{ p ‘before_save —————-‘ } after_post_process ->{ p ‘after_post_process ————–‘ } def rename_pic p ‘en imagen’ p self p ‘en imagen’ end 在服务中有很多图像: # don’t use accepts_nested_attributes_for before_save :create_images attr_accessor :images_attributes def create_images # images_attributes example value: { “0”=> {img_attrs}, “1” => {img_attrs1} } images_attributes.all? do |k, image_attrs| […]

Rails错误 – 无法加载此类文件 – aws-sdk(您可能需要安装aws-sdk gem)

我有一个RoR应用程序,通过回形针和amazon s3上传图像。 在我决定将路线从myapp.com/id更改为myapp.com/model-name之前,一切正常。 现在我收到以下错误: LoadError cannot load such file — aws-sdk (You may need to install the aws-sdk gem) 。 这些更改涉及更改模型,控制器和数据库。 模型: class Major “, similar: ‘166×134>’, thumb: “100×100>” }, :storage => :s3, :bucket => ‘major finder’ :s3_credentials => { :access_key_id => ‘my_key_id’, :secret_access_key => ‘my_secret_access_key’ }, :path => “/majors/:attachment/:style/:filename” # make the url path […]

Rails / Paperclip – 跳过图像处理

如何基于虚拟属性跳过后处理? 我的虚拟属性在before_asset_post_process回调中始终为nil 创建 attachment = Attachment.create(asset: File.open(file.png), :skip_thumb => 1) 可连接的模型 class Attachment lambda { |attachment| { :thumb => [“100>”, ‘jpg’] , :thumb_big => [“200>”, ‘jpg’] } before_asset_post_process :proceed_or_cancel def proceed_or_cancel #self.skip_thumb is always nil if (self.skip_thumb.present?) return false end end end

回形针,设置rails根文件夹之外的路径

我有两个独立的rails应用程序,比如MyApp和MyAppAdmin。 在MyAppAdmin中,可以使用paperclip gem附加图像,这些图像应该可以在第一个应用程序(MyApp)上使用。 我可以在MyAppAdmin中添加用户头像,它应该显示在MyApp中。 如何设置指向常见“共享”文件夹的图像路径,这两个应用程序可以使用哪个? 我试着用类似的东西 path: “/tmp/shared” 在我的config.yml中,但它没有用。 它只是添加到默认的回形针路径(与“../temp/shared”相对路径相同)。 https://github.com/thoughtbot/paperclip/blob/master/lib/paperclip/attachment.rb#L23 我还试图添加类似的东西 Paperclip::Attachment.default_options[:path] = ‘/tmp/shared/:class/:id_partition/:style.:extension’ 到我的development.rb文件没有运气。 是否可以在回形针OUTSIDE实际的rails app文件夹中设置图像路径? * MyApp使用rails 3.2,MyAppAdmin – rails 2.3.18

Ruby on Rails / Paperclip / AWS :: S3 :: NoSuchBucket错误

我安装了paperclip插件,并且能够在本地使用它。 当我配置它与亚马逊S3一起使用时,我不断收到NoSuchBucket(指定的存储桶不存在)错误。 Paperclip文档声明如果存储桶不存在则会创建存储桶,但在我的情况下显然存在问题。 我首先打破了aws-s3 gem(v0.6.2)然后还安装了right_aws gem(v1.9.0) 两者都有对应的 config.gem “aws-s3”, :lib => “aws/s3” config.gem ‘right_aws’, :version => ‘1.9.0’ environment.rb文件中的行 带回形针的image.rb文件的代码如下: class Image {:big => “612×1224>”, :small => “180X360>”, :thumb => “36×36#”}, :storage => ‘s3’, :s3_credentials => YAML.load_file(“#{RAILS_ROOT}/config/s3.yml”)[RAILS_ENV], :path => “:attachment/:id/:style/:basename.:extension”, :bucket => ‘my-unique-image-bucket’ attr_protected :photo_file_name, :photo_content_type, :photo_size validates_attachment_presence :photo validates_attachment_size :photo, :less_than => 3.megabytes validates_attachment_content_type :photo, […]

Ruby on rails未经许可的参数:image

我正在尝试使用paperclip gem上传图像,刚才,我的模型是: 我的模特 class Advert < ActiveRecord::Base has_attached_file :image #accepts_nested_attributes_for :image end 我的部分观点: 我的控制器: def new logger.info “Processing the request New…” @advert = Advert.new end def create logger.info “Processing the request Create…” #logger.info JSON.parse( params[:advert].to_json ) @advert = Advert.new( advert_params ) @advert.save redirect_to action: “index” end private def advert_params params.require(:advert).permit(:title, :features, :description, :areadescription, :rooms, :bathroom, […]

Rails Paperclip S3 – 缺少必需:桶选项

我正在尝试将Amazon S3用于Paperclip附件。 首先,我试图让它在我的iMac上的开发环境中工作。 我创建了亚马逊桶= ndeavor-dev和ndeavor-pro。 在下面的代码中,我已经替换了存储桶名称和密钥。 我有gem的paperclip和aws-sdk 。 我得到的错误是: ArgumentError at /attachments missing required :bucket option 我在config / environments / development.rb中试过这个: config.paperclip_defaults = { :storage => :s3, :s3_protocol => ‘http’, :bucket => ENV[‘AWS_BUCKET’], :s3_credentials => { :access_key_id => ENV[‘AWS_ACCESS_KEY_ID’], :secret_access_key => ENV[‘AWS_SECRET_ACCESS_KEY’] } } 我尝试了这个(移动:桶): config.paperclip_defaults = { :storage => :s3, :s3_protocol => ‘http’, :s3_credentials […]

如果条件为真,请使用回形针处理处理器

我有一个带回形针rubygem的模型。 我定义了一个带有2个处理器( thumbnail和watermark )的附件。 问题是如果条件为true是否存在应用水印处理器的方法。 (没有水印处理器,没有定义新的attach_files的想法) 提前致谢。 我尝试使用这段代码,但不行。 如果字段eid存在带水印的进程,否则如果null进程只有缩略图 :processors => lambda { |a| if a.eid.nil? [:thumbnail,:watermark] else [:thumbnail] end },

回形针上的Paperclip AWS :: S3 :: Errors :: NoSuchKey错误

我正在尝试将不同模型的头像复制到我的User模型中,但是当我尝试这样做时,我收到了AWS::S3::Errors::NoSuchKey错误。 这是抛出错误的代码: old_avatar = OldAvatar.find(1) user = User.find(old_avatar.user_id) user.avatar = old_avatar.avatar user.save user.avatar = old_avatar.avatar行是抛出它的原因。 这是我的OldAvatar模型…… has_attached_file :avatar, :styles => { :t => ’20×20#’, :s => ’40×40#’, :m => ’50×50#’, :b => ’80×80#’, :f => ‘100×100#’ }, :storage => :s3, :s3_credentials => { :access_key_id => APP_CONFIG[‘s3_access_key_id’], :secret_access_key => APP_CONFIG[‘s3_secret_access_key’] }, :path => “:attachment/:id/:basename:normalized_style.:extension”, :url => […]

将回形针附件的所有样式复制到新对象(S3)

我有一个使用Paperclip来处理图像的模型。 当图像上传时,对一些javascript裁剪进行预览,然后从所选择的裁剪中制作缩略图和预览尺寸。 给我们S3总共3张图片: 原始图像 预览(来自用户选择的裁剪) 拇指(来自用户选择的裁剪) 附件模型中的代码是: has_attached_file :picture, ASSET_INFO.merge( :whiny => false, :styles => { :thumb => ‘200>x200#’, :preview => ‘400×300>’ }, :processors => [:jcropper], :preserve_files => true ) 我们有一些function允许用户为了自己的目的制作对象的副本,我们想要复制图像。 我以为这只是做一个简单的事情 new_my_model.picture = original_my_model.picture if original_my_model.picture_file_name #no file name means no picture 会完成工作,而且确实如此,但只有一点。 它正在复制图片,然后根据模型中设置的内容重新处理预览和缩略图。 我想要做的是将所有3个现有图像(原始图像,拇指图像和预览图像)复制到新对象,就像它们用于原始图像一样,然后将它们保存在S3上的适当位置,跳过resize/裁剪。 谁能指出我正确的方向? 我在网上搜索过,似乎找不到任何东西,我尝试的一切似乎都不起作用。 在原始图片上执行.dup会导致exception,因此该想法已经完成。