bmyers
bmyers

Reputation: 99

Rails Paperclip gem wrong number of arguments error

I'm working on my first RoR project and attempting to use the Paperclip gem, but I'm running into an error I can't seem to figure out:

wrong number of arguments (1 for 0)
app/controllers/events_controller.rb:43:in `create'
Parameters:

{"utf8"=>"✓",
 "authenticity_token"=>"OBYHA0M+TA93sNF3uqrJ/zvnnEyWJUREn4NcOl0ExfA=",
 "event"=>{"title"=>"",
 "image"=>#<ActionDispatch::Http::UploadedFile:0x007f803802b1f0 @original_filename="icon.png",
 @content_type="image/png",
 @headers="Content-Disposition: form-data; name=\"event[image]\"; filename=\"icon.png\"\r\nContent-Type: image/png\r\n",
 @tempfile=#<File:/tmp/RackMultipart20130217-21480-1molvwa>>,
 "description"=>"",
 "date"=>"",
 "time"=>""},
 "commit"=>"Create Event"}

I understand that in events_controller.rb in the create method, too many arguments are being passed in. However, I followed the QuickStart instructions on Paperclip's Github so I'm not sure why I'm getting this error.

Here is my code for events_controller.rb

def create
    @event = Event.create( params[:event] )
 end

Just for debugging, I tried changing the line to Event.create( params[] ), at which point the error changed from wrong number of arguments (1 for 0) to wrong number of arguments (0 for 1).

Here is my code for event.rb

class Event < ActiveRecord::Base
    attr_accessible :date, :description, :time, :title, :image
    has_attached_file :image, :styles => { :medium => "300x300>", :thumb => "100x100>" }
end

I've checked that I'm running the correct versions for everything. I have Paperclip 3.4.0, Rails 3.2.12, Ruby 1.9.3, and ImageMagick 6.8.3-1. I'm using Ubuntu 12.04 LTS.

I've looked at quite a few similar problems but most seemed to occur a few years ago and were resolved in subsequent updates to Paperclip. None of the solutions I've found in similar posts have worked for me, and unfortunately I just have enough Rails experience yet to know what's going on. I realize I'm probably making a total newbie mistake, in which case I apologize but would still really appreciate some help to get me on the right track.

Please let me know if any additional code or information would be useful for debugging.

Thanks for your time!

Application trace:

cocaine (0.3.2) lib/cocaine/command_line.rb:63:in run' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/helpers.rb:31:in run' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/geometry_detector_factory.rb:18:in block in geometry_string' activesupport (3.2.12) lib/active_support/core_ext/kernel/reporting.rb:43:insilence_stream' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/geometry_detector_factory.rb:17:in geometry_string' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/geometry_detector_factory.rb:9:in make' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/geometry.rb:26:in from_file' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/thumbnail.rb:35:in initialize' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/processor.rb:33:in new' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/processor.rb:33:in make' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:431:in block in post_process_style' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:430:in each' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:430:in inject' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:430:in post_process_style' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:423:in block in post_process_styles' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:422:in each' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:422:in post_process_styles' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:415:in block (2 levels) in post_process' activesupport (3.2.12) lib/active_support/callbacks.rb:403:in _run__3384881169595487878__image_post_process__96086910066492375__callbacks' activesupport (3.2.12) lib/active_support/callbacks.rb:405:in __run_callback' activesupport (3.2.12) lib/active_support/callbacks.rb:385:in _run_image_post_process_callbacks' activesupport (3.2.12) lib/active_support/callbacks.rb:81:inrun_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/callbacks.rb:26:in run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:414:in block in post_process' activesupport (3.2.12) lib/active_support/callbacks.rb:403:in _run__3384881169595487878__post_process__96086910066492375__callbacks' activesupport (3.2.12) lib/active_support/callbacks.rb:405:in __run_callback' activesupport (3.2.12) lib/active_support/callbacks.rb:385:in _run_post_process_callbacks' activesupport (3.2.12) lib/active_support/callbacks.rb:81:in run_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/callbacks.rb:26:in run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:413:in post_process' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:108:in assign' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip.rb:200:inblock in has_attached_file' activerecord (3.2.12) lib/active_record/attribute_assignment.rb:85:in block in assign_attributes' activerecord (3.2.12) lib/active_record/attribute_assignment.rb:78:ineach' activerecord (3.2.12) lib/active_record/attribute_assignment.rb:78:in assign_attributes' activerecord (3.2.12) lib/active_record/base.rb:497:ininitialize' activerecord (3.2.12) lib/active_record/persistence.rb:44:in new' activerecord (3.2.12) lib/active_record/persistence.rb:44:increate' app/controllers/events_controller.rb:43:in create' actionpack (3.2.12) lib/action_controller/metal/implicit_render.rb:4:in send_action' actionpack (3.2.12) lib/abstract_controller/base.rb:167:in process_action' actionpack (3.2.12) lib/action_controller/metal/rendering.rb:10:in process_action' actionpack (3.2.12) lib/abstract_controller/callbacks.rb:18:in block in process_action' activesupport (3.2.12) lib/active_support/callbacks.rb:414:in run_3332570171411252513__process_action_3320642634939127128_callbacks' activesupport (3.2.12) lib/active_support/callbacks.rb:405:in __run_callback' activesupport (3.2.12) lib/active_support/callbacks.rb:385:in_run_process_action_callbacks' activesupport (3.2.12) lib/active_support/callbacks.rb:81:in run_callbacks' actionpack (3.2.12) lib/abstract_controller/callbacks.rb:17:inprocess_action' actionpack (3.2.12) lib/action_controller/metal/rescue.rb:29:in process_action' actionpack (3.2.12) lib/action_controller/metal/instrumentation.rb:30:inblock in process_action' activesupport (3.2.12) lib/active_support/notifications.rb:123:in block in instrument' activesupport (3.2.12) lib/active_support/notifications/instrumenter.rb:20:ininstrument' activesupport (3.2.12) lib/active_support/notifications.rb:123:in instrument' actionpack (3.2.12) lib/action_controller/metal/instrumentation.rb:29:inprocess_action' actionpack (3.2.12) lib/action_controller/metal/params_wrapper.rb:207:in process_action' activerecord (3.2.12) lib/active_record/railties/controller_runtime.rb:18:in process_action' actionpack (3.2.12) lib/abstract_controller/base.rb:121:in process' actionpack (3.2.12) lib/abstract_controller/rendering.rb:45:inprocess' actionpack (3.2.12) lib/action_controller/metal.rb:203:in dispatch' actionpack (3.2.12) lib/action_controller/metal/rack_delegation.rb:14:in dispatch' actionpack (3.2.12) lib/action_controller/metal.rb:246:in block in action' actionpack (3.2.12) lib/action_dispatch/routing/route_set.rb:73:incall' actionpack (3.2.12) lib/action_dispatch/routing/route_set.rb:73:in dispatch' actionpack (3.2.12) lib/action_dispatch/routing/route_set.rb:36:in call' journey (1.0.4) lib/journey/router.rb:68:in block in call' journey (1.0.4) lib/journey/router.rb:56:ineach' journey (1.0.4) lib/journey/router.rb:56:in call' actionpack (3.2.12) lib/action_dispatch/routing/route_set.rb:601:incall' actionpack (3.2.12) lib/action_dispatch/middleware/best_standards_support.rb:17:in call' rack (1.4.5) lib/rack/etag.rb:23:incall' rack (1.4.5) lib/rack/conditionalget.rb:35:in call' actionpack (3.2.12) lib/action_dispatch/middleware/head.rb:14:incall' actionpack (3.2.12) lib/action_dispatch/middleware/params_parser.rb:21:in call' actionpack (3.2.12) lib/action_dispatch/middleware/flash.rb:242:in call' rack (1.4.5) lib/rack/session/abstract/id.rb:210:in context' rack (1.4.5) lib/rack/session/abstract/id.rb:205:incall' actionpack (3.2.12) lib/action_dispatch/middleware/cookies.rb:341:in call' activerecord (3.2.12) lib/active_record/query_cache.rb:64:incall' activerecord (3.2.12) lib/active_record/connection_adapters/abstract/connection_pool.rb:479:in call' actionpack (3.2.12) lib/action_dispatch/middleware/callbacks.rb:28:inblock in call' activesupport (3.2.12) lib/active_support/callbacks.rb:405:in _run__1281245379307539657__call__96086910066492375__callbacks' activesupport (3.2.12) lib/active_support/callbacks.rb:405:in __run_callback' activesupport (3.2.12) lib/active_support/callbacks.rb:385:in _run_call_callbacks' activesupport (3.2.12) lib/active_support/callbacks.rb:81:in run_callbacks' actionpack (3.2.12) lib/action_dispatch/middleware/callbacks.rb:27:in call' actionpack (3.2.12) lib/action_dispatch/middleware/reloader.rb:65:incall' actionpack (3.2.12) lib/action_dispatch/middleware/remote_ip.rb:31:in call' actionpack (3.2.12) lib/action_dispatch/middleware/debug_exceptions.rb:16:incall' actionpack (3.2.12) lib/action_dispatch/middleware/show_exceptions.rb:56:in call' railties (3.2.12) lib/rails/rack/logger.rb:32:incall_app' railties (3.2.12) lib/rails/rack/logger.rb:16:in block in call' activesupport (3.2.12) lib/active_support/tagged_logging.rb:22:intagged' railties (3.2.12) lib/rails/rack/logger.rb:16:in call' actionpack (3.2.12) lib/action_dispatch/middleware/request_id.rb:22:incall' rack (1.4.5) lib/rack/methodoverride.rb:21:in call' rack (1.4.5) lib/rack/runtime.rb:17:incall' activesupport (3.2.12) lib/active_support/cache/strategy/local_cache.rb:72:in call' rack (1.4.5) lib/rack/lock.rb:15:incall' actionpack (3.2.12) lib/action_dispatch/middleware/static.rb:62:in call' railties (3.2.12) lib/rails/engine.rb:479:incall' railties (3.2.12) lib/rails/application.rb:223:in call' rack (1.4.5) lib/rack/content_length.rb:14:incall' railties (3.2.12) lib/rails/rack/log_tailer.rb:17:in call' rack (1.4.5) lib/rack/handler/webrick.rb:59:inservice' /home/user/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/webrick/httpserver.rb:138:in service' /home/user/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/webrick/httpserver.rb:94:in run' /home/user/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'

Upvotes: 2

Views: 2545

Answers (1)

nates
nates

Reputation: 8452

You are using the wrong version of cocaine. Run bundle install then make sure you are using bundle exec rails s to start your rails server.

The run method in the newer version of cocaine (~> 0.4.0) takes an optional argument (def run(interpolations = {})) that the older version (0.3.2) didn't.

See comments above.

Upvotes: 4

Related Questions