no implicit conversion of String into Array - Rails 4.1.0.beta1 -
i have been dealing issue error: "no implicit conversion of string array".
to set in context: on rails 4.1.0.beta1, , using paperclip. trying add together watermark images. found next solution: watermark images paperclip, rails 4
i sort of got working @ point lastly night after receiving here stated error message - made slight change, had undone. , next error again?! might easy one, don't seem see it.
any help much appreciated.
here error message:
completed 500 internal server error in 578ms typeerror - no implicit conversion of string array: () users/georg/development/ror/lp/lib/paperclip_processors/watermark.rb:44:in `make' paperclip (4.1.1) lib/paperclip/processor.rb:33:in `make' paperclip (4.1.1) lib/paperclip/attachment.rb:462:in `block in post_process_style' paperclip (4.1.1) lib/paperclip/attachment.rb:461:in `post_process_style' paperclip (4.1.1) lib/paperclip/attachment.rb:454:in `block in post_process_styles' paperclip (4.1.1) lib/paperclip/attachment.rb:453:in `post_process_styles' paperclip (4.1.1) lib/paperclip/attachment.rb:445:in `block (2 levels) in post_process' activesupport (4.1.0.beta1) lib/active_support/callbacks.rb:113:in `call' activesupport (4.1.0.beta1) lib/active_support/callbacks.rb:166:in `block in halting' activesupport (4.1.0.beta1) lib/active_support/callbacks.rb:149:in `block in halting_and_conditional' activesupport (4.1.0.beta1) lib/active_support/callbacks.rb:86:in `run_callbacks' paperclip (4.1.1) lib/paperclip/callbacks.rb:36:in `run_paperclip_callbacks' paperclip (4.1.1) lib/paperclip/attachment.rb:443:in `block in post_process' activesupport (4.1.0.beta1) lib/active_support/callbacks.rb:82:in `run_callbacks' paperclip (4.1.1) lib/paperclip/callbacks.rb:36:in `run_paperclip_callbacks' paperclip (4.1.1) lib/paperclip/attachment.rb:442:in `post_process' paperclip (4.1.1) lib/paperclip/attachment.rb:114:in `assign' paperclip (4.1.1) lib/paperclip/has_attached_file.rb:66:in `block in define_setter' activerecord (4.1.0.beta1) lib/active_record/attribute_assignment.rb:45:in `_assign_attribute' activerecord (4.1.0.beta1) lib/active_record/attribute_assignment.rb:32:in `block in assign_attributes' here model: - /model/asset.rb
class asset < activerecord::base ... belongs_to :user belongs_to :member_visibility has_attached_file :image, :processors => [:watermark], :url => "/system/:class/:attachment/:id_partition/:style/:filename", :path => ":rails_root/public/system/:class/:attachment/:id_partition/:style/:filename", :styles => { :seperator => { :geometry => '2000x1333#', :format => 'jpg' }, :thumb => proc.new { |instance| instance.resize_cover_image('thumb') }, :gallery => { :processors => [:watermark], :geometry => proc.new { |instance| instance.resize_cover_image('gallery') }, :watermark_path => rails.root.join('app/assets/images/watermark.png'), :position => 'southwest', :format => 'jpg'}, :medium => { :processors => [:watermark], :geometry => proc.new { |instance| instance.resize_cover_image('medium') }, :watermark_path => rails.root.join('app/assets/images/watermarksmall.png'), :position => 'southeast', :format => 'jpg', :quality => 80 } }, :convert_options => { :seperator => '-set colorspace srgb -strip -quality 50 -sharpen 0x0.5', :thumb => '-set colorspace srgb -strip -quality 80', :gallery => '-set colorspace srgb -strip -quality 90', :medium => '-set colorspace srgb -strip -quality 80 -sharpen 0x0.5' }, dependent: :allow_destroy validates_attachment_content_type :image, :content_type => /\aimage\/.*\z/ crop_attached_file :image, :aspect => :set_aspect_ratio def resize_cover_image(style) geo = paperclip::geometry.from_file(paperclip.io_adapters.for(image)) case style when 'thumb' geo.horizontal? ? '350x233#' : '200x300#' when 'medium' geo.horizontal? ? '750x500#' : '370x555#' when 'gallery' geo.horizontal? ? '1125x750#' : '600x900#' end end private ... end note if comment out watermark path of gallery & medium processors works fine. paperclip setup good.
here lib/paperclip_processors/watermark.rb (as per watermark images paperclip, rails 4)
module paperclip class watermark < processor # handles watermarking of images uploaded. attr_accessor :current_geometry, :target_geometry, :format, :whiny, :convert_options, :watermark_path, :watermark_offset, :overlay, :position def initialize file, options = {}, attachment = nil super geometry = options[:geometry] @file = file @crop = geometry[-1,1] == '#' @target_geometry = geometry.parse geometry @current_geometry = geometry.from_file @file @convert_options = options[:convert_options] @whiny = options[:whiny].nil? ? true : options[:whiny] @format = options[:format] @watermark_path = options[:watermark_path] @position = options[:position].nil? ? "southeast" : options[:position] @watermark_offset = options[:watermark_offset] @overlay = options[:overlay].nil? ? true : false @current_format = file.extname(@file.path) @basename = file.basename(@file.path, @current_format) end # todo: extend watermark # returns true if +target_geometry+ meant crop. def crop? @crop end # returns true if image meant create utilize of additional convert options. def convert_options? not @convert_options.blank? end # performs conversion of +file+ watermark. returns tempfile # contains new image. def create dst = tempfile.new([@basename, @format].compact.join(".")) dst.binmode if watermark_path command = "convert" params = %w['#{fromfile}'] params += transformation_command params += %w['#{watermark_path}' -gravity #{@position} -composite] params << "'#{tofile(dst)}'" else command = "convert" params = ["'#{fromfile}'"] params += transformation_command params << "'#{tofile(dst)}'" end begin paperclip.run(command, params.join(' ')) rescue argumenterror, cocaine::commandlineerror raise papercliperror, "there error processing watermark #{@basename}" if @whiny end dst end def fromfile file.expand_path(@file.path) end def tofile(destination) file.expand_path(destination.path) end def transformation_command scale, crop = @current_geometry.transformation_to(@target_geometry, crop?) trans = %w[-resize '#{scale}'] trans += %w[-crop '#{crop}' +repage] if crop trans << convert_options if convert_options? trans end end end --- other things noticed:
if remove contents of create - alter to:
def make
end
i still error. if can point me right direction awesome!
cheers.
to prepare , working had remove :processors => [:watermark] :gallery , :medium one.
has_attached_file :image, :processors => [:watermark], :url => "/system/:class/:attachment/:id_partition/:style/:filename", :path => ":rails_root/public/system/:class/:attachment/:id_partition/:style/:filename", :styles => { :seperator => { :geometry => '2000x1333#', :format => 'jpg' }, :thumb => proc.new { |instance| instance.resize_cover_image('thumb') }, :gallery => { :geometry => proc.new { |instance| instance.resize_cover_image('gallery') }, :watermark_path => rails.root.join('app/assets/images/watermark.png'), :position => 'southwest', :format => 'jpg' }, :medium => { :geometry => proc.new { |instance| instance.resize_cover_image('medium') }, :watermark_path => rails.root.join('app/assets/images/watermarksmall.png'), :position => 'southeast', :format => 'jpg' } }, :convert_options => { :gallery => '-set colorspace srgb -strip -quality 80 -sharpen 0x0.5', :thumb => '-set colorspace srgb -strip -quality 80', :medium => '-set colorspace srgb -strip -quality 80', :seperator => '-set colorspace srgb -strip -quality 50 -sharpen 0x0.5' }, dependent: :allow_destroy ruby-on-rails ruby-on-rails-4 paperclip data-type-conversion watermark
No comments:
Post a Comment