2

我正在处理我的第一个 RoR 项目并尝试使用 Paperclip gem,但我遇到了一个我似乎无法弄清楚的错误:

参数数量错误(1 代表 0)
app/controllers/events_controller.rb:43:in `create'
参数:

{"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"}

我知道在 create 方法的 events_controller.rb 中,传入了太多参数。但是,我按照 Paperclip 的 Github 上的快速入门说明进行操作,所以我不确定为什么会收到此错误。

这是我的 events_controller.rb 代码

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

只是为了调试,我尝试将行更改为 Event.create(params[]),此时错误从错误数量的参数(1 代表 0)变为错误数量的参数(0 代表 1)。

这是我的 event.rb 代码

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

我已经检查过我正在为所有内容运行正确的版本。我有 Paperclip 3.4.0、Rails 3.2.12、Ruby 1.9.3 和 ImageMagick 6.8.3-1。我正在使用 Ubuntu 12.04 LTS。

我看过不少类似的问题,但大多数似乎发生在几年前,并在随后的 Paperclip 更新中得到解决。我在类似帖子中找到的解决方案都没有为我工作,不幸的是我只是有足够的 Rails 经验还不知道发生了什么。我意识到我可能犯了一个完全新手错误,在这种情况下,我道歉,但仍然非常感谢一些帮助让我走上正轨。

请让我知道是否有任何其他代码或信息对调试有用。

谢谢你的时间!

应用程序跟踪:

可卡因 (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:inquiet_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/用户/.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 初始化'/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 每个'/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 阻止 post_process 的 activesupport (3.2.12) lib/active_support/callbacks.rb:403: 在_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: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: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_3_process_action_callback (support.21) libs' active. /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: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: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:incontext' 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:inblock in call' activesupport (3.2.12) lib/active_support/tagged_logging.rb:22:in标记'railties (3.2.12) lib/rails/rack/logger.rb:16:incall' 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:在call' rack (1.4.5) lib/rack/handler/webrick.rb:59:in服务中'/home/user/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/webrick/httpserver.rb:138 :在service' /home/user/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/webrick/httpserver.rb:94:in 运行中'/home/user/.rvm/ rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'

4

1 回答 1

4

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.

于 2013-02-19T20:15:18.260 回答