问题
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:inblock in geometry_string' activesupport (3.2.12) lib/active_support/core_ext/kernel/reporting.rb:43:in
silence_stream' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/geometry_detector_factory.rb:17:ingeometry_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:infrom_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:innew' /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:inblock 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:ininject' /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:inblock 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:inpost_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:in
run_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/callbacks.rb:26:inrun_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:inrun_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:inassign' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip.rb:200:in
block in has_attached_file' activerecord (3.2.12) lib/active_record/attribute_assignment.rb:85:inblock in assign_attributes' activerecord (3.2.12) lib/active_record/attribute_assignment.rb:78:in
each' activerecord (3.2.12) lib/active_record/attribute_assignment.rb:78:inassign_attributes' activerecord (3.2.12) lib/active_record/base.rb:497:in
initialize' activerecord (3.2.12) lib/active_record/persistence.rb:44:innew' activerecord (3.2.12) lib/active_record/persistence.rb:44:in
create' app/controllers/events_controller.rb:43:increate' 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:inprocess_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:inblock 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:inrun_callbacks' actionpack (3.2.12) lib/abstract_controller/callbacks.rb:17:in
process_action' actionpack (3.2.12) lib/action_controller/metal/rescue.rb:29:inprocess_action' actionpack (3.2.12) lib/action_controller/metal/instrumentation.rb:30:in
block in process_action' activesupport (3.2.12) lib/active_support/notifications.rb:123:inblock in instrument' activesupport (3.2.12) lib/active_support/notifications/instrumenter.rb:20:in
instrument' activesupport (3.2.12) lib/active_support/notifications.rb:123:ininstrument' actionpack (3.2.12) lib/action_controller/metal/instrumentation.rb:29:in
process_action' actionpack (3.2.12) lib/action_controller/metal/params_wrapper.rb:207:inprocess_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:inprocess' actionpack (3.2.12) lib/abstract_controller/rendering.rb:45:in
process' actionpack (3.2.12) lib/action_controller/metal.rb:203:indispatch' actionpack (3.2.12) lib/action_controller/metal/rack_delegation.rb:14:in
dispatch' actionpack (3.2.12) lib/action_controller/metal.rb:246:inblock in action' actionpack (3.2.12) lib/action_dispatch/routing/route_set.rb:73:in
call' actionpack (3.2.12) lib/action_dispatch/routing/route_set.rb:73:indispatch' actionpack (3.2.12) lib/action_dispatch/routing/route_set.rb:36:in
call' journey (1.0.4) lib/journey/router.rb:68:inblock in call' journey (1.0.4) lib/journey/router.rb:56:in
each' journey (1.0.4) lib/journey/router.rb:56:incall' actionpack (3.2.12) lib/action_dispatch/routing/route_set.rb:601:in
call' actionpack (3.2.12) lib/action_dispatch/middleware/best_standards_support.rb:17:incall' rack (1.4.5) lib/rack/etag.rb:23:in
call' rack (1.4.5) lib/rack/conditionalget.rb:35:incall' actionpack (3.2.12) lib/action_dispatch/middleware/head.rb:14:in
call' actionpack (3.2.12) lib/action_dispatch/middleware/params_parser.rb:21:incall' actionpack (3.2.12) lib/action_dispatch/middleware/flash.rb:242:in
call' rack (1.4.5) lib/rack/session/abstract/id.rb:210:incontext' rack (1.4.5) lib/rack/session/abstract/id.rb:205:in
call' actionpack (3.2.12) lib/action_dispatch/middleware/cookies.rb:341:incall' activerecord (3.2.12) lib/active_record/query_cache.rb:64:in
call' activerecord (3.2.12) lib/active_record/connection_adapters/abstract/connection_pool.rb:479:incall' actionpack (3.2.12) lib/action_dispatch/middleware/callbacks.rb:28:in
block 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:incall' actionpack (3.2.12) lib/action_dispatch/middleware/reloader.rb:65:in
call' actionpack (3.2.12) lib/action_dispatch/middleware/remote_ip.rb:31:incall' actionpack (3.2.12) lib/action_dispatch/middleware/debug_exceptions.rb:16:in
call' actionpack (3.2.12) lib/action_dispatch/middleware/show_exceptions.rb:56:incall' railties (3.2.12) lib/rails/rack/logger.rb:32:in
call_app' railties (3.2.12) lib/rails/rack/logger.rb:16:inblock in call' activesupport (3.2.12) lib/active_support/tagged_logging.rb:22:in
tagged' railties (3.2.12) lib/rails/rack/logger.rb:16:incall' actionpack (3.2.12) lib/action_dispatch/middleware/request_id.rb:22:in
call' rack (1.4.5) lib/rack/methodoverride.rb:21:incall' rack (1.4.5) lib/rack/runtime.rb:17:in
call' activesupport (3.2.12) lib/active_support/cache/strategy/local_cache.rb:72:incall' rack (1.4.5) lib/rack/lock.rb:15:in
call' actionpack (3.2.12) lib/action_dispatch/middleware/static.rb:62:incall' railties (3.2.12) lib/rails/engine.rb:479:in
call' railties (3.2.12) lib/rails/application.rb:223:incall' rack (1.4.5) lib/rack/content_length.rb:14:in
call' railties (3.2.12) lib/rails/rack/log_tailer.rb:17:incall' rack (1.4.5) lib/rack/handler/webrick.rb:59:in
service' /home/user/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/webrick/httpserver.rb:138:inservice' /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'
回答1:
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.
来源:https://stackoverflow.com/questions/14925970/rails-paperclip-gem-wrong-number-of-arguments-error