jstorimer / delayed_paperclip Goto Github PK
View Code? Open in Web Editor NEWProcess your Paperclip attachments in the background with delayed_job or Resque.
Home Page: https://github.com/jrgifford/delayed_paperclip/
Process your Paperclip attachments in the background with delayed_job or Resque.
Home Page: https://github.com/jrgifford/delayed_paperclip/
This should be tagged as a feature request, but there doesn't appear to be a list of tags when opening an issue for delayed_paperclip.
It would be nice to have a way to know when the image is finished processing. This would allow websites, for example, to render a placeholder loading spinner after an image is submitted, allowing the spinner to be replaced by the true image via AJAX when it is done processing and available for display.
I ran into an amusing error. If your paperclip attachment is named "attachment", then it blows up with a "stack level too deep" exception when uploading a file. The culprit is this:
(lib/delayed/paperclip.rb)
define_method "#{name}_changed?" do
file_attachment_changed?(name)
end
When #{name} is :attachment, it ends up overwritting Delayed::Paperclip::InstanceMethods#attachment_changed?
I recommend making a note in the readme that you shouldn't name your attachment :attachment, or renaming Delayed::Paperclip::InstanceMethods#attachment_changed? in your source.
Thanks for making delayed_paperclip. I really appreciate this excellent plugin.
I'm getting some warnings:
/usr/lib/ruby/gems/1.8/gems/delayed_paperclip-0.6.5/lib/delayed/paperclip.rb:88: warning: parenthesize argument(s) for future version /usr/lib/ruby/gems/1.8/gems/delayed_paperclip-0.6.5/lib/delayed/paperclip.rb:89: warning: parenthesize argument(s) for future version
Paperclip uses Paperclip::Attachment#most_appropriate_url when populating @queue_for_delete with filenames to be deleted if a instance with attachment is destroyed.
However this method is overriden by delayed_paperclip.
In case of
Paperclip will not delete original-style file because #most_appropriate_url will return the missing.png url. (I'd like to focus, the instance is not dirty, has an id, file is stored at its correct location, but attachment_processing=true).
This orphaned original-style file will be on stored filesystem forever (untill it is manually removed).
Probably Paperclip::Attachment#url should be also overriden to pass style_name attribute to most_appropriate_url, which would return correct interpolation string if the instance is not dirty and requested style is :original.
While using DJ paperclip, my callbacks are not working,
My callbacks :
#after_file_post_process :add_notification
#after_post_process :add_notification
They are working when I use after_create, but I need the after post process to send a mail using the thumbnail version of the attachement.
Am I doing something wrong ?
I recently did a bundle update and my paperclip version updated to the recently released 2.3.15.
Following the update, i noticed some weird behaviour with the delayed paperclip jobs. Once the job was processed it would reinitialize the same job in the DB and then process the image again, over and over again and never stop.
DelayedPaperclipJob completed after 3.6699
DelayedPaperclipJob completed after 3.4298
DelayedPaperclipJob completed after 3.4421
DelayedPaperclipJob completed after 3.9339
DelayedPaperclipJob completed after 4.0015
DelayedPaperclipJob completed after 5.0911
The initial job would be removed from the database (but replaced with another one at that time). Therefore, I would never get the notification on completion of the jobs:
1 jobs processed at 0.9559 j/s
I tried processing an image without using delayed_paperclip via paperclip 2.3.15 and everything works as expected.
Has anyone else noticed this? I ended up rolling back to paperclip 2.3.12 and delayed_paperclip behaves as desired.
I'm using a nested attributes form, and it appears to cause an issue with delayed_paperclip.
I have a model called 'MediaSet', and it accepts_nested_attributes_for many 'MediaAssets'. I have a form for MediaSet that allows you to add as many mediaAssets as you'd like.
However, in this setup, the processing happens when I click submit (for MediaSet) and then again later in a delayed job.
Any thoughts?
It's a bit of a feature request:
I have my own processing flag set in the model and used an embedded association á là railscast 189.
I'd like to add methods in the model like _attachment_name__processing that deal with my flag rather than having two flags: one for delayed paperclip and one for the encoding api.
The problem is that dp checks for the existence of the column, not for a resond_to
Why is there a check for an actual column? Would you consider accepting a patch that alters the beahviorur?
Hello !
Here is my bug :
/Users/rnaud/.rvm/gems/ruby-1.9.2-p290/bundler/gems/rails-b7c7f08c87a8/activesupport/lib/active_support/core_ext/module/aliasing.rb:31:in alias_method': undefined method
most_appropriate_url' for class `Paperclip::Attachment' (NameError)
using in my gem file :
Using paperclip (2.4.5) from git://github.com/thoughtbot/paperclip.git (at master)
Using delayed_paperclip (2.4.5.1) from git://github.com/jstorimer/delayed_paperclip.git (at master)
like this:
....
before_create :randomize_file_name
def randomize_file_name
extension = File.extname(avatar_file_name).downcase
self.avatar.instance_write(:file_name, "#{ActiveSupport::SecureRandom.hex(16)}#{extension}")
end
has_attached_file :avatar,
:styles => {:medium => "300x300>", :thumb => "100x100>"}#,
:url => "/system/:attachment/#{Time.now.year}/w#{Time.now.strftime("%W")}/:basename_:style.:extension",
:path => ":rails_root/public/system/:attachment/#{Time.now.year}/w#{Time.now.strftime("%W")}/:basename_:style.:extension"
....
and then:
only have :original pic , and :medium pic, :thumb pic not created, i dont know why ?
Thank you very much ! my english very pool, sorry
by -- Kevin Li
i added image_processing column to my model, and now it stays true, though processing is finished, images are ready. do i need to implement flag switcher by hand?
== AddPhotoProcessing: migrating =============================================
-- add_column(:photos, :image_processing, :boolean)
-> 0.0014s
== AddPhotoProcessing: migrated (0.0015s) ====================================
added a photo
irb(main):002:0> Photo.all.collect{|p|[p.id, p.image_processing]}
=> [[5, nil], [6, nil], [7, nil], [8, nil], [10, nil], [11, nil], [13, true]]
Hello Jesse,
Trying to write some tests for issue #21 and following the CONTRIBUTING file, I got an exception when running rake test
.
Full log:
~/Code/Ruby/gems/delayed_paperclip% bundle install Fetching source index for http://rubygems.org/ Using activesupport (3.0.9) Using builder (2.1.2) Using i18n (0.5.0) Using activemodel (3.0.9) Using arel (2.0.10) Using tzinfo (0.3.28) Installing activerecord (3.0.9) Using cocaine (0.1.0) Using daemons (1.1.4) Using delayed_job (2.1.4) Using paperclip (2.3.12) Using delayed_paperclip (0.6.5) from source at /Users/owahab/Code/Ruby/gems/delayed_paperclip Installing json (1.5.3) with native extensions Installing mocha (0.9.12) Installing rack (1.3.0) Installing redis (2.2.1) Installing redis-namespace (1.0.3) Installing tilt (1.3.2) Installing sinatra (1.2.6) Installing vegas (0.1.8) Installing resque (1.17.1) Using sqlite3 (1.3.3) Using sqlite3-ruby (1.3.3) Using bundler (1.0.10) Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed. ~/Code/Ruby/gems/delayed_paperclip% rake test (in /Users/owahab/Code/Ruby/gems/delayed_paperclip) /Users/owahab/.rvm/rubies/ruby-1.9.2-p180/bin/ruby -I"lib:lib" "/Users/owahab/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "test/delayed_paperclip_test.rb" "test/resque_paperclip_test.rb" :29:in `require': no such file to load -- test/test_helper (LoadError) from :29:in `require' from test/delayed_paperclip_test.rb:1:in `' from /Users/owahab/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5:in `load' from /Users/owahab/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5:in `block in ' from /Users/owahab/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5:in `each' from /Users/owahab/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5:in `' rake aborted! Command failed with status (1): [/Users/owahab/.rvm/rubies/ruby-1.9.2-p180/...] (See full trace by running task with --trace) zsh: exit 1 rake test ~/Code/Ruby/gems/delayed_paperclip%
paperclip: 2.4.5
delayed_paperclip: 2.4.5.1
I'm hosted in Heroku and I'm uploading an image to S3 using Paperclip. The weird part is that the image gets uploaded sometimes and sometimes the job fails. I think this issue might be similar to #32, but that code is no longer relevant.
The failed job is:
Worker: 265c393b-5c64-4b94-b243-602683ffeccd:1 on PAPERCLIP at just now Retry or Remove
Class: DelayedPaperclip::Jobs::Resque
Arguments: "Tag", 321, "image"
Exception: ActiveRecord::StatementInvalid
Error: PGError: SSL error: decryption failed or bad record mac : SELECT tablename FROM pg_tables WHERE schemaname = ANY (current_schemas(false))
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.0.11/lib/active_record/connection_adapters/postgresql_adapter.rb:505:in `exec'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.0.11/lib/active_record/connection_adapters/postgresql_adapter.rb:505:in `block in query'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.0.11/lib/active_record/connection_adapters/abstract_adapter.rb:202:in `block in log'
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.0.11/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.0.11/lib/active_record/connection_adapters/abstract_adapter.rb:200:in `log'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.0.11/lib/active_record/connection_adapters/postgresql_adapter.rb:501:in `query'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.0.11/lib/active_record/connection_adapters/postgresql_adapter.rb:614:in `tables'
/app/vendor/bundle/ruby/1.9.1/gems/arel-2.0.10/lib/arel/table.rb:131:in `table_cache'
/app/vendor/bundle/ruby/1.9.1/gems/arel-2.0.10/lib/arel/table.rb:126:in `tables'
/app/vendor/bundle/ruby/1.9.1/gems/arel-2.0.10/lib/arel/table.rb:122:in `table_exists?'
/app/vendor/bundle/ruby/1.9.1/gems/arel-2.0.10/lib/arel/table.rb:101:in `[]'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.0.11/lib/active_record/relation.rb:317:in `primary_key'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.0.11/lib/active_record/relation/finder_methods.rb:301:in `find_one'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.0.11/lib/active_record/relation/finder_methods.rb:291:in `find_with_ids'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.0.11/lib/active_record/relation/finder_methods.rb:107:in `find'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.0.11/lib/active_record/base.rb:444:in `find'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_paperclip-2.4.5.1/lib/delayed_paperclip.rb:30:in `process_job'
/app/vendor/bundle/ruby/1.9.1/gems/delayed_paperclip-2.4.5.1/lib/delayed_paperclip/jobs/resque.rb:13:in `perform'
Relevant code:
Line 30 corresponds to instance_klass.constantize.find(instance_id).
in https://github.com/jstorimer/delayed_paperclip/blob/61eb0d2d0eacee70350a22460032fed024c54a0a/lib/delayed_paperclip.rb#L30
def process_job(instance_klass, instance_id, attachment_name)
instance_klass.constantize.find(instance_id).
send(attachment_name).
process_delayed!
end
Update: Running "Tag".constantize.find(321).send("image")
in the console returns the image object for the tag with id 321 (just as it should: Tag.find(321).image
), no errors.
Hello,
I was using the paperclip gem without any versioning, always updating, but it happens that the gem delayed paperclip is failing on latest versions of the paperclip gem.
I went up to ref "65e8d4f6de50732d8e1b", after this one, the delayed jobs keep looping, the log says that the job was completed but keeps doing it, over and over again.
Is this only happening to me ? Is there a way to have a more verbose log to check it ?
Things go back to normal if I remove the gem from my Gemfile, but obviously slower.
Thanks for your help !
Using delayed_paperclip 0.7.2, delayed_job 2.1.4 and paperclip 2.4.4, no custom style is being processed at all.
has_attached_file :image, :styles => { :thumb => "100x100#", :large => "640x640>" },
:storage => :filesystem,
:path => "tmp/uploads/:class/:id_:style.:extension"
process_in_background :image
I get one file, the original. If I comment out the process_in_background :image
line, all styles are uploaded and everything works fine.
(This would probably have it's place in a mailing list, but I couldn't find any dedicated to delayed_paperclip)
Hi everyone,
I noticed that the url_with_processed was removed in delayed_paperclip 2.4.5.1 and with it the ability to call url_without_processed. Which was quite an handy method to allow people to download content before its thumbnail was generated. I looked through the source code but I couldn't find a new alternative to this method.
I've patched it for now, but I was wondering if there was in fact a better way of accessing the attachment url?
I see that the next version of paperclip allows us to pass our own url_generator, very much looking forward to that.
Hey,
All the blogs and documentation for the exact use case is a little confusing.
Does delayed_paperclip only delay the resizing of images? Or does it delay the file upload to s3 as well?
From my testing it seems that it does not delay the file upload to s3. Is that true?
undefined method `read' for #<RightAws::S3::Key
Paperclip's queued_for_write[:original].path appears to have a different value under delayed_paperclip.
paperclip
/tmp/paperclip-postprocess-20120219-10150-1yaig50.wav
delayed_paperclip
/tmp/paperclip-postprocess-20120219-10150-1yaig50
Paperclip Version: 2.4.5
Delayed Paperclip Version: 2.4.5.1
I've been looking at source, but not sure if its with delayed job, or paperclip, or this gem. I've been trying both delayed_jobs collectiveidea, and tobi. Any help on where to look would be appreciated.
"\xFF" from ASCII-8BIT to UTF-8
/.rvm/gems/ruby-1.9.2-p0/gems/paperclip-2.3.3/lib/paperclip/storage.rb:197:in to_file' /.rvm/gems/ruby-1.9.2-p0/gems/paperclip-2.3.3/lib/paperclip/attachment.rb:209:in
reprocess!'
/.rvm/gems/ruby-1.9.2-p0/bundler/gems/delayed_paperclip-ddb7c1e85bf6/lib/delayed/jobs/delayed_paperclip_job.rb:4:in block in perform' /.rvm/gems/ruby-1.9.2-p0/bundler/gems/delayed_paperclip-ddb7c1e85bf6/lib/delayed/jobs/delayed_paperclip_job.rb:16:in
process_job'
/.rvm/gems/ruby-1.9.2-p0/bundler/gems/delayed_paperclip-ddb7c1e85bf6/lib/delayed/jobs/delayed_paperclip_job.rb:3:in `perform'
Are there any plans to support paperclip 2.4.x?
Failure:
test_processed_true_when_delayed_jobs_completed(DelayedPaperclipTest) [test/delayed_paperclip_test.rb:107]:
Failed assertion, no message given.
Failure:
test_unprocessed_image_returns_missing_url(DelayedPaperclipTest) [test/delayed_paperclip_test.rb:119]:
Expected //system/images/1/original/12k.png/ to match "/images/original/missing.png".
22 tests, 27 assertions, 2 failures, 0 errors, 0 skips
When trying to start my rails app (passenger, ruby enterprise), I get this error:
undefined method url' for class
Paperclip::Attachment'
The issue is solved by reverting to the earlier release of delayed_paperclip.
Hi,
Latest version (2.4.5.0) is working great with the latest Paperclip (2.4.5).
However, on load of a rake task or anything, with Rails 3.1 it is failing to run the Railtie for DelayedPaperclip .
For example :
class Image < ActiveRecord::Base
has_attached_file :image
process_in_background :image
end
bundle exec rake paperclip:refresh CLASS=Image
rake aborted!
undefined method `process_in_background' for #<Class:0x007f904cbed0c8>
Then explicitly including DelayedPaperclip::Glue it works :
class Image < ActiveRecord::Base
include DelayedPaperclip::Glue
has_attached_file :image
process_in_background :image
end
Not sure why the Rails init commands aren't working yet...
Hello all,
I have a problem with this model:
class Photo < ActiveRecord::Base
has_attached_file :pic,
:styles => { :medium => "300x300>",
:thumb => "100x100>" },
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => "/photos/:id/:style/:filename"
belongs_to :property
process_in_background :pic
end
Really simple, it uploads to S3 without any problems but it doesn't do the post processing. It keep throwing this error:
failed with TypeError: can't convert Array into String
I think is breaking in the interaction between paperclip and s3 in this block on delayed_paperclip_job.rb
process_job do
instance.send(attachment_name).reprocess!
instance.send("#{attachment_name}_processed!")
end
Thanks
Starting paperclip somewhere around 2.3.16, saving attachment with delayed_paperclip causes infinite saving loop as the model's attachment_updated_at
attribute gets "touched" upon saving, and delayed_paperclip is recognizing that attachment has changed.
I am not sure exactly which version of Paperclip breaks delayed_paperclip, but I have determined that 2.3.11 works, while 2.3.16 or 2.4.1 (latest currently) doesn't.
Using the following values for that attachment:
...
:path => "/:view_key/:style/:hash",
:use_timestamp => false,
:hash_secret => "hash.secret",
:hash_data => ":class/:attachment/:id/:style/:updated_at"
...
The process works, and the styles are generated on S3, but the hash is different. The image from paperclip/rails perspective thinks that it has a different path with a different hash than what is actually out on S3.
S3:
/l3n08oq9wqo18wgq8454/post/d3610c38d4d3c9efc8fa3ad92bbebe0be2236d49
Rails/paperclip:
/l3n08oq9wqo18wgq8454/post/75953d644e3684c584d25e401ee250b0ce36ca78
If I remove the hashed path requirements, the code works great and happily places the files out on S3 with the default pathing.
Thoughts as to what may be the problem with using a hashed path? Is it that the code is not interrogating the hash_data and hash_secret when creating the file out on s3? or perhaps a mismatch in using the updated_at field?
Thanks,
Chris.
After that the file is never processed, and nothing is added to the delayed jobs queue.
SQL (0.6ms) COMMIT
AREL (0.8ms) UPDATE "photos" SET file_processing = 1 WHERE (id = 1071)
PGError: ERROR: column "file_processing" is of type boolean but expression is of type integer
LINE 1: UPDATE "photos" SET file_processing = 1 WHERE (id = 1071)
^
HINT: You will need to rewrite or cast the expression.
: UPDATE "photos" SET file_processing = 1 WHERE (id = 1071)
PGError: ERROR: column "file_processing" is of type boolean but expression is of type integer
LINE 1: UPDATE "photos" SET file_processing = 1 WHERE (id = 1071)
Hi,
Using PaperClip 2.4.5, DelayedPaperClip 2.4.5.1, Aws/S3 0.6.2 and DelayedJobs 2.0.7 with Rails 2.3.14
Upon adding a paperclip image that needs to have multiple transformations applied to it I get the above error with this stack trace:
/Library/Ruby/Gems/1.8/gems/paperclip-2.4.5/lib/paperclip/storage/s3.rb:210:in to_file''
/Library/Ruby/Gems/1.8/gems/paperclip-2.4.5/lib/paperclip/attachment.rb:282:inreprocess!''
/Library/Ruby/Gems/1.8/gems/delayed_paperclip-2.4.5.1/lib/delayed_paperclip/attachment.rb:42:in process_delayed!''
/Library/Ruby/Gems/1.8/gems/delayed_paperclip-2.4.5.1/lib/delayed_paperclip.rb:30:inprocess_job''
/Library/Ruby/Gems/1.8/gems/delayed_paperclip-2.4.5.1/lib/delayed_paperclip/jobs/delayed_job.rb:28:in perform''
/Library/Ruby/Gems/1.8/gems/delayed_job-2.0.7/lib/delayed/backend/base.rb:74:ininvoke_job''
/Library/Ruby/Gems/1.8/gems/delayed_job-2.0.7/lib/delayed/worker.rb:122:in run''
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:62:intimeout''
/Library/Ruby/Gems/1.8/gems/delayed_job-2.0.7/lib/delayed/worker.rb:122:in run''
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:308:inrealtime''
/Library/Ruby/Gems/1.8/gems/delayed_job-2.0.7/lib/delayed/worker.rb:121:in run''
/Library/Ruby/Gems/1.8/gems/delayed_job-2.0.7/lib/delayed/worker.rb:173:inreserve_and_run_one_job''
/Library/Ruby/Gems/1.8/gems/delayed_job-2.0.7/lib/delayed/worker.rb:106:in work_off''
/Library/Ruby/Gems/1.8/gems/delayed_job-2.0.7/lib/delayed/worker.rb:105:intimes''
/Library/Ruby/Gems/1.8/gems/delayed_job-2.0.7/lib/delayed/worker.rb:105:in work_off''
/Library/Ruby/Gems/1.8/gems/delayed_job-2.0.7/lib/delayed/worker.rb:80:instart''
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:308:in realtime''
/Library/Ruby/Gems/1.8/gems/delayed_job-2.0.7/lib/delayed/worker.rb:79:instart''
/Library/Ruby/Gems/1.8/gems/delayed_job-2.0.7/lib/delayed/worker.rb:76:in loop''
/Library/Ruby/Gems/1.8/gems/delayed_job-2.0.7/lib/delayed/worker.rb:76:instart''
/Library/Ruby/Gems/1.8/gems/delayed_job-2.0.7/lib/delayed/tasks.rb:13
Is this a PaperClip issue or a DelayedPaperclip issue ?
Any fixes ?
Hi,
due a problem described here: thoughtbot/paperclip#450
I am not able to use delayed_paperclip , because it needs paperclip >= 2.39 (#36)
I tried with (working) delayed job and also with (working) resque (of course not both together!).
Is there on older version of delayed_paperclip not needing post_processing?
Thanks,
Karsten
After upgrading to the latest version of delayed_paperclip (from 0.6.5 to 0.7.2), when testing a custom paperclip processor with, the processing was never perfomed. The reason was that delayed_paperclip uses the after_commit callback. Since rspec uses transactional fixtures the after_commit is not triggered.
The solution to this problem for me was to disable the transactional fixtures for that single spec:
describe "with transactional fixtures disabled" do
self.use_transactional_fixtures = false
after(:each) do
# Cleanup
end
it "should run my custom processor" do
# Assigning file to model
Delayed::Worker.new.work_off # Launching DJ worker
# Test that the processing has been performed
end
end
It took me some time to figure it out, hope this helps.
The README says:
To have the missing image url be outputted by paperclip while the image is being processed, all you need to do is add a #{attachment_name}_processing column to the specific model you want to enable this feature for.
...but the various files in lib/delayed/jobs all mark the attachment as having been processed before they call reprocess! If the processing takes a significant amount of time, then the user will see a broken-image (as opposed to the missing-image) for the period of time between processing starting and finishing.
Hey all interested,
I was thinking about changing the versioning of this gem. Why you ask? Well,
So what do I propose? We number this gem exactly as paperclip. So:
But there is still one issue here: How do we handle bugfix releases within one version of paperclip? I would suggest using a 4 number version: 2.3.4.0 where the last number would reflect a bugfix release of delayed_paperclip. I think this is compatible with rubygems.
What do you think?
I'm running the latest master branch of Paperclip (as at 2nd Feb 10) and the 0.5.0 version of the delayed_paperclip gem, but when I add the 'process_in_background' call to my model (as described in the rdoc) I'm seeing this error:
undefined method `quoted_table_name' for Paperclip::Attachment:Class
vendor/rails/activerecord/lib/active_record/reflection.rb:187:in `quoted_table_name'
vendor/rails/activerecord/lib/active_record/associations/has_one_association.rb:90:in `construct_sql'
vendor/rails/activerecord/lib/active_record/associations/has_one_association.rb:6:in `initialize'
vendor/rails/activerecord/lib/active_record/associations.rb:1246:in `new'
vendor/rails/activerecord/lib/active_record/associations.rb:1246:in `attachment'
I'm running Rails 2.3.4. Am I doing something wrong?
I'm not sure wether this is a bug or by design, when the before_post_process filter returns false, the processing is halted but the resource_processing field is not updated.
I used to have this code
before_post_process :image?
process_in_background :resource
def image?
resource_content_type =~ /image/ ? true : false
end
And after switching to delayed_paperclip 2.4.5.1 (and paperclip 2.4.5) I had to adapt my code to :
before_post_process :image?
process_in_background :resource
def image?
return true if resource_content_type =~ /image/
self.update_attribute(:resource_processing, false) # Had to add this line
false
end
Or is there a different way to come around this problem?
Trying to use this with Rails 3 and Paperclip 2.3.1.1 I get this:
Loading development environment (Rails 3.0.0.beta)
irb(main):001:0> User.methods
NoMethodError: undefined method `before_avatar_post_process' for #<Class:0x10673eef0>
from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.0.beta/lib/active_record/base.rb:1300:in `method_missing'
from /Library/Ruby/Gems/1.8/gems/delayed_paperclip-0.6.4/lib/delayed/paperclip.rb:47:in `send'
from /Library/Ruby/Gems/1.8/gems/delayed_paperclip-0.6.4/lib/delayed/paperclip.rb:47:in `process_in_background'
from /Users/garrett/src/sites/clientend/app/models/user.rb:16
from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.0.beta/lib/active_support/dependencies.rb:396:in `load_without_new_constant_marking'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.0.beta/lib/active_support/dependencies.rb:396:in `load_file'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.0.beta/lib/active_support/dependencies.rb:537:in `new_constants_in'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.0.beta/lib/active_support/dependencies.rb:395:in `load_file'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.0.beta/lib/active_support/dependencies.rb:275:in `require_or_load'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.0.beta/lib/active_support/dependencies.rb:441:in `load_missing_constant'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.0.beta/lib/active_support/dependencies.rb:91:in `const_missing_not_from_s3_library'
from /Library/Ruby/Gems/1.8/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb:206:in `const_missing'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.0.beta/lib/active_support/dependencies.rb:103:in `const_missing'
from (irb):1
JasonKing's commit for Paperclip and Rails 3 breaks the before_#{name}_post_process
http://github.com/JasonKing/paperclip/commit/9c9082814f628a618f625158fc8507ef1578dacc . Do you have any suggestions as to what we can do to make this work again?
Thanks in advance.
Hi,
When I try to upload a image I get the error:
obs: I'm using Ruby EE, Rails 2.3.8, Redis 2.0.5 and Resque 1.0.10
uninitialized constant ResquePaperclipJob
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:443:in `load_missing_constant'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:80:in `const_missing'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:92:in `const_missing'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/resque-1.10.0/lib/resque/helpers.rb:58:in `const_get'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/resque-1.10.0/lib/resque/helpers.rb:58:in `constantize'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/resque-1.10.0/lib/resque/helpers.rb:57:in `each'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/resque-1.10.0/lib/resque/helpers.rb:57:in `constantize'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/resque-1.10.0/lib/resque/job.rb:174:in `payload_class'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/resque-1.10.0/lib/resque/job.rb:111:in `perform'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/resque-1.10.0/lib/resque/worker.rb:157:in `perform'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/resque-1.10.0/lib/resque/worker.rb:124:in `work'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/resque-1.10.0/lib/resque/worker.rb:110:in `loop'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/resque-1.10.0/lib/resque/worker.rb:110:in `work'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/resque-1.10.0/lib/resque/tasks.rb:24
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'
/home/rinaldi/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/gems/rake-0.8.7/bin/rake:31
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/bin/rake:19:in `load'
/home/rinaldi/.rvm/gems/ree-1.8.7-2010.02@rails238/bin/rake:19
After added [attachment_name]_processing column, paperclip would first upload the image to [rails root]/public/main_photos/original/missing.png (my attachment is name main_photo) instead of the usual public/system/main_photos/:id/original/. Then when Delayed_job kicked off paperclip, which processed the thumbnail image and put it into /public/main_photos/thumb/missing.png, instead of the usual public/system/main_photos/:id/thumb/
I am running paperclip gem 2.3.1.1, rails 2.3.4, delayed_paperclip gem 0.6.1
Hello,
I'm trying to use delayed_paperclip with Mongoid and Resque, definitely there are some key points that we have to adjust to make the gem play nice with Mongoid.
Here for both delayed_job and resque we do read_attribute(:id). The problem is that while Mongoid supports the read_attribute method, :id doesn't return what we expect, it returns nil. Either we have to call .id directly or read_attribute(:_id).to_s
In Mongoid it should be something like:
self.class.fields.keys.include?(column.to_s)
I'm currently looking for other problems, to make the gem compatible an effort should be made with some conditionals.
I have 2 models, one of which is a subclass of the other. They use different styles for the same attachment.
When the parent model processes an image as a delayed_job, it is sometimes processed using the styles specified in the child class.
I'm not sure if this behavior is a problem with delayed_paperclip, delayed_job, or paperclip. I'll post an update if/when I find out more.
I'm using delayed_paperclip (tried both 0.6.5 and recently 0.7.0) with paperclip on Heorku using S3 as storage.
I have a site where users can upload multiple photos for storage with a single put. The photos are then re-sized into two sizes. With both versions (0.6.5 and 0.7.0) it would work spottily when users sent more than one photo in an upload (e.g. 5 photos). Some photos would get background processed and others would fail.
When I look through the logs I've put some statements in so I can see that the Resque.enqueue statements are being called. However, often a few of the enqueued processes simply do not run or the enqueue itself is failing.
I should also note its a separate worker that may be processing the image (i.e. a different thread, potentially on a different machine). That worker can see the resque queue though, and can get the file from S3. When I run a reprocess! manually from the heroku console it works fine.
When I upload multiple files, only the last one gets processed successfully. The other original image is in S3, but no thumbnails. Sometimes I get the following error in delayed_jobs.last_error and sometimes I get no error and the jobs are auto-deleted from the database.
instance_klass: Image
instance_id: 38
attachment_name: :file
| The specified key does not exist.
/usr/lib/ruby/gems/1.8/gems/aws-s3-0.6.2/lib/aws/s3/error.rb:38:in raise' /usr/lib/ruby/gems/1.8/gems/aws-s3-0.6.2/lib/aws/s3/base.rb:72:in
request'
/usr/lib/ruby/gems/1.8/gems/aws-s3-0.6.2/lib/aws/s3/base.rb:88:in get' /usr/lib/ruby/gems/1.8/gems/aws-s3-0.6.2/lib/aws/s3/object.rb:134:in
value'
/usr/lib/ruby/gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/storage.rb:193:in to_file' /usr/lib/ruby/gems/1.8/gems/paperclip-2.3.1.1/lib/paperclip/attachment.rb:212:in
reprocess!'
/usr/lib/ruby/gems/1.8/gems/delayed_paperclip-0.6.5/lib/delayed/jobs/delayed_paperclip_job.rb:4:in perform' /usr/lib/ruby/gems/1.8/gems/delayed_paperclip-0.6.5/lib/delayed/jobs/delayed_paperclip_job.rb:16:in
process_job'
/usr/lib/ruby/gems/1.8/gems/delayed_paperclip-0.6.5/lib/delayed/jobs/delayed_paperclip_job.rb:3:in perform' /usr/lib/ruby/gems/1.8/gems/delayed_job-1.8.5/lib/delayed/job.rb:235:in
invoke_job'
/usr/lib/ruby/gems/1.8/gems/delayed_job-1.8.5/lib/delayed/job.rb:113:in run_with_lock' /usr/lib/ruby/1.8/timeout.rb:56:in
timeout'
/usr/lib/ruby/gems/1.8/gems/delayed_job-1.8.5/lib/delayed/job.rb:113:in run_with_lock' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/core_ext/benchmark.rb:10:in
realtime'
/usr/lib/ruby/gems/1.8/gems/delayed_job-1.8.5/lib/delayed/job.rb:112:in run_with_lock' /usr/lib/ruby/gems/1.8/gems/delayed_job-1.8.5/lib/delayed/job.rb:173:in
reserve_and_run_one_job'
/usr/lib/ruby/gems/1.8/gems/delayed_job-1.8.5/lib/delayed/job.rb:172:in each' /usr/lib/ruby/gems/1.8/gems/delayed_job-1.8.5/lib/delayed/job.rb:172:in
reserve_and_run_one_job'
/usr/lib/ruby/gems/1.8/gems/delayed_job-1.8.5/lib/delayed/job.rb:219:in work_off' /usr/lib/ruby/gems/1.8/gems/delayed_job-1.8.5/lib/delayed/job.rb:218:in
times'
/usr/lib/ruby/gems/1.8/gems/delayed_job-1.8.5/lib/delayed/job.rb:218:in work_off' /usr/lib/ruby/gems/1.8/gems/delayed_job-1.8.5/lib/delayed/worker.rb:30:in
start'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/core_ext/benchmark.rb:10:in realtime' /usr/lib/ruby/gems/1.8/gems/delayed_job-1.8.5/lib/delayed/worker.rb:29:in
start'
/usr/lib/ruby/gems/1.8/gems/delayed_job-1.8.5/lib/delayed/worker.rb:26:in loop' /usr/lib/ruby/gems/1.8/gems/delayed_job-1.8.5/lib/delayed/worker.rb:26:in
start'
script/delayed_job:24
/usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/application.rb:215:in call' /usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/application.rb:215:in
start_proc'
/usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/daemonize.rb:192:in call' /usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/daemonize.rb:192:in
call_as_daemon'
/usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/application.rb:219:in start_proc' /usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/application.rb:255:in
start'
/usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/controller.rb:69:in run' /usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons.rb:188:in
run_proc'
/usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/cmdline.rb:105:in call' /usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/cmdline.rb:105:in
catch_exceptions'
/usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons.rb:187:in `run_proc'
script/delayed_job:13
I get the following error after I tried running delayed_paperclip jobs via script/job_runner:
undefined method constantize' for 56:Fixnum /usr/local/lib/ruby/gems/1.8/gems/delayed_paperclip-0.5.0/lib/delayed/jobs/delayed_paperclip_job.rb:3:in
perform'
/usr/local/lib/ruby/gems/1.8/gems/delayed_job-1.8.4/lib/delayed/job.rb:215:in invoke_job' /usr/local/lib/ruby/gems/1.8/gems/delayed_job-1.8.4/lib/delayed/job.rb:93:in
run_with_lock'
/usr/local/lib/ruby/1.8/timeout.rb:62:in timeout' /usr/local/lib/ruby/gems/1.8/gems/delayed_job-1.8.4/lib/delayed/job.rb:93:in
run_with_lock'
/usr/local/lib/ruby/1.8/benchmark.rb:308:in realtime' /usr/local/lib/ruby/gems/1.8/gems/delayed_job-1.8.4/lib/delayed/job.rb:92:in
run_with_lock'
/usr/local/lib/ruby/gems/1.8/gems/delayed_job-1.8.4/lib/delayed/job.rb:153:in reserve_and_run_one_job' /usr/local/lib/ruby/gems/1.8/gems/delayed_job-1.8.4/lib/delayed/job.rb:152:in
each'
/usr/local/lib/ruby/gems/1.8/gems/delayed_job-1.8.4/lib/delayed/job.rb:152:in reserve_and_run_one_job' /usr/local/lib/ruby/gems/1.8/gems/delayed_job-1.8.4/lib/delayed/job.rb:199:in
work_off'
/usr/local/lib/ruby/gems/1.8/gems/delayed_job-1.8.4/lib/delayed/job.rb:198:in times' /usr/local/lib/ruby/gems/1.8/gems/delayed_job-1.8.4/lib/delayed/job.rb:198:in
work_off'
/usr/local/lib/ruby/gems/1.8/gems/delayed_job-1.8.4/lib/delayed/worker.rb:28:in start' /usr/local/lib/ruby/1.8/benchmark.rb:308:in
realtime'
/usr/local/lib/ruby/gems/1.8/gems/delayed_job-1.8.4/lib/delayed/worker.rb:27:in start' /usr/local/lib/ruby/gems/1.8/gems/delayed_job-1.8.4/lib/delayed/worker.rb:24:in
loop'
/usr/local/lib/ruby/gems/1.8/gems/delayed_job-1.8.4/lib/delayed/worker.rb:24:in `start'
script/job_runner:4
my config:
has_attached_file :data,
:storage => :ftp,
:url => /:attachment/:style/:filename",
:path => "/var/www/ais/public/assets/:attachment/:style/:filename",
:ftp_credentials => Rails.root.join('config', 'paperclipftp.yaml')
Any Suggestions?
I can successfully generate thumb styles when an avatar_processing column is not present, however adding the column results in only the original file being saved. When debugging, it appears that the original image is not present at the time Attachment.process_delayed! is called, whereas without using the avatar_processing column the original does exist.
I am using delayed_paperclip 0.7.2, Paperclip 2.3.16 and Rails 3.1.1. Any help appreciated - thanks.
trying to add delayed_paperclip to existing functional paperclip installation. i use resque for background tasks and deploy on heroku, so am using foreman locally and a procfile to start-up processes, etc.
when i add the process_in_background to my model that has the paperclip attachment, and then fire up the server i get a resque exception indicating that the rake task failed due to process_in_background being an undefined method.
any help appreciated. i;m hoping running in the background will alleviate another issue i have with paperclip related to dynamic styles and the timing of the instantiation of the attributes....
I'm making a small app running on Heroku. I'm doing paperclip with ftp storage, and it easily times out on large files. I'm interested in delayed_paperclip, but I want to avoid using extra workers to keep it free, so DJ and Resque are out.
Do you think it'd be possible to use https://github.com/mperham/girl_friday as an option instead?
I've found in one of my apps that waiting for s3 to respond to destroy requests for multiple thumbnails sometimes takes more time than I want the user to have to wait. Would you be open to a patch that handles deleting files via delayed job or provides an option to do so?
ruby 1.8.7, rails 2.3.8, paperclip 2.3.0, delayed_paperclip 0.7.2
i get the error below when i do a simple @user.photo.file? call (or any variations, like @user.photo.url(:medium).) it's probably not a bug but there's a dearth of info out there. (also got same error using paperclip 2.3.8)
the error stack:
NoMethodError (undefined method post_processing=' for #<Paperclip::Attachment:0x10761f528>): /usr/local/lib/ruby/gems/1.8/gems/delayed_paperclip-0.7.2/lib/delayed_paperclip.rb:94:in
attachment_for'
/usr/local/lib/ruby/gems/1.8/gems/delayed_paperclip-0.7.2/lib/delayed_paperclip.rb:93:in tap' /usr/local/lib/ruby/gems/1.8/gems/delayed_paperclip-0.7.2/lib/delayed_paperclip.rb:93:in
attachment_for'
paperclip (2.3.0) lib/paperclip.rb:227:in photo' app/controllers/users_controller.rb:57:in
show'
the model:
has_attached_file :photo,
:styles => { :large => ["500x500^", :jpg],
:medium => ["200x200^", :jpg],
:thumb => ["80x80^", :jpg],
:tiny => ["48x48^", :jpg] },
:storage => :s3,
:s3_credentials => {:access_key_id => "XYZ",
:secret_access_key => "XYZ"},
:path => ":class/:attachment/:id/:style.:extension",
:bucket => "#{Rails.env}.media.domain.com"
process_in_background :photo
I make use of the the :url option for my paperclip attachments. Could this be causing this? The stack trace doesn't seem to help much. It actually prevents passenger from starting:
0 /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/module/aliasing.rb 33 in alias_method' 1 /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/module/aliasing.rb 33 in
alias_method_chain'
2 /Users/brendon/Projects/SpikeAtSchool/vendor/plugins/delayed_paperclip/lib/delayed/paperclip.rb 105
3 /Library/Ruby/Site/1.8/rubygems/custom_require.rb 31 in gem_original_require' 4 /Library/Ruby/Site/1.8/rubygems/custom_require.rb 31 in
require'
5 /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb 156 in require' 6 /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb 521 in
new_constants_in'
7 /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb 156 in require' 8 /Users/brendon/Projects/SpikeAtSchool/vendor/plugins/delayed_paperclip/lib/delayed_paperclip.rb 1 9 /Library/Ruby/Site/1.8/rubygems/custom_require.rb 31 in
gem_original_require'
10 /Library/Ruby/Site/1.8/rubygems/custom_require.rb 31 in require' 11 /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb 156 in
require'
12 /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb 521 in new_constants_in' 13 /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb 156 in
require'
14 /Users/brendon/Projects/SpikeAtSchool/vendor/plugins/delayed_paperclip/rails/init.rb 1 in evaluate_init_rb' 15 /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/rails/plugin.rb 158 in
evaluate_init_rb'
16 /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/kernel/reporting.rb 11 in silence_warnings' 17 /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/rails/plugin.rb 154 in
evaluate_init_rb'
18 /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/rails/plugin.rb 48 in load' 19 /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/rails/plugin/loader.rb 38 in
load_plugins'
20 /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/rails/plugin/loader.rb 37 in each' 21 /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/rails/plugin/loader.rb 37 in
load_plugins'
22 /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb 369 in load_plugins' 23 /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb 165 in
process'
24 /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb 113 in send' 25 /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb 113 in
run'
26 /Users/brendon/Projects/SpikeAtSchool/config/environment.rb 16
27 /Library/Ruby/Site/1.8/rubygems/custom_require.rb 31 in gem_original_require' 28 /Library/Ruby/Site/1.8/rubygems/custom_require.rb 31 in
require'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.