Rails Paperclip gem错误的参数个数错误
我正在研究我的第一个RoR项目并试图使用Paperclip gem,但我遇到了一个我似乎无法弄清楚的错误:
错误的参数数量(1表示0)
app / controllers / events_controller.rb:43:在’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=#>, "description"=>"", "date"=>"", "time"=>""}, "commit"=>"Create Event"}
我知道在create方法的events_controller.rb中,传入了太多的参数。但是,我遵循Paperclip的Github上的QuickStart指令,所以我不确定为什么我会收到此错误。
这是我的events_controller.rb代码
def create @event = Event.create( params[:event] ) end
只是为了调试,我尝试将行更改为Event.create(params []),此时错误从错误的参数数量(1表示0)变为错误的参数数量(0表示1)。
这是我的event.rb代码
class Event { :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更新中得到解决。 我在类似post中找到的解决方案都没有为我工作,不幸的是我只有足够的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
/home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/run' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/helpers.rb:31:in
运行’/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’block in geometry_string' activesupport (3.2.12) lib/active_support/core_ext/kernel/reporting.rb:43:in
paperclip / geometry_detector_factory.rb:17:在geometry_string' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/geometry_detector_factory.rb:9:in
/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
user/from_file' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/thumbnail.rb:35:in
initialize’from_file' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/thumbnail.rb:35:in
纸夹-dcd2774e7913 / LIB /纸夹/ processo r.rb:33:在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:inblock 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:ininject' /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.rbinject' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:430: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
inject' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:430:in
423inject' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:430: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’block in post_process_styles' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:422:in
。 3-p385 / bundler / gems / paperclip-dcd2774e7913 / lib / paperclip / attachment.rb:422:在post_process_styles' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:415:in
post_process_styles' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:415:in
home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:415:in post_process’activesupport(3.2中)块(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’_run_image_post_process_callbacks' activesupport (3.2.12) lib/active_support/callbacks.rb:81:in
/ paperclip/run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:414:in
inrun_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:414:in
home/run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:414:in
.rvm/run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:414:in
ruby-run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:414:in
p385/run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:414:in
gems/run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:414:in
dcd2774e7913/run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:414:in
paperclip/run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:414:in
414:run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:414:in
block在post_process’activesupport(3.2.12)lib / active_support / callbacks.rb:_run__3384881169595487878__post_process__96086910066492375__callbacks' activesupport (3.2.12) lib/active_support/callbacks.rb:405:in
:in_run__3384881169595487878__post_process__96086910066492375__callbacks' activesupport (3.2.12) lib/active_support/callbacks.rb:405:in
__run_c allback’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’_run_post_process_callbacks' activesupport (3.2.12) lib/active_support/callbacks.rb:81:in
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
/home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gemsrun_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:413:in
dcd2774e7913/run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:413:in
paperclip/run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:413:in
413:run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:413:in
post_process’/run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:413:in
user/run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:413:in
gems/run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:413:in
1.9.3-run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:413:in
bundler/run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:413:in
paperclip-run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:413:in
lib/run_paperclip_callbacks' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip/attachment.rb:413:in
attachment。 rb:108:在has_attached_file’activerecord中assign' /home/user/.rvm/gems/ruby-1.9.3-p385/bundler/gems/paperclip-dcd2774e7913/lib/paperclip.rb:200:in
块(3.2。 12)lib / active_record / attribute_assignment.rb:85:在block in assign_attributes' activerecord (3.2.12) lib/active_record/attribute_assignment.rb:78:in
中的block in assign_attributes' activerecord (3.2.12) lib/active_record/attribute_assignment.rb:78:in
每个’activerecord(3.2.12)lib / active_record / attribute_assignment.rb中: 78:在assign_attributes' activerecord (3.2.12) lib/active_record/base.rb:497:in
initialize’ activerecord(3.2.12)lib / active_record / persistence.rb:44:在new' activerecord (3.2.12) lib/active_record/persistence.rb:44:in
/ controllers / events_controller.rb中:43:在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:block in process_action' activesupport (3.2.12) lib/active_support/callbacks.rb:414:in
中的block in process_action' activesupport (3.2.12) lib/active_support/callbacks.rb:414:in
运行 _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)l ib / action_controller / metal / rescue.rb:29:在process_action' actionpack (3.2.12) lib/action_controller/metal/instrumentation.rb:30:in
在process_action’activesupport(3.2.12)lib / active_support / notificationsprocess_action' actionpack (3.2.12) lib/action_controller/metal/instrumentation.rb:30:in
块中。 rb:123:在block in instrument' activesupport (3.2.12) lib/active_support/notifications/instrumenter.rb:20:in
中的block in instrument' activesupport (3.2.12) lib/active_support/notifications/instrumenter.rb:20:in
仪器’activesupport(3.2.12)中lib / active_support / notifications.rb:123:在instrument' 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:process' actionpack (3.2.12) lib/abstract_controller/rendering.rb:45:in
process’ actionpack(3.2.12)lib / action_controller / metal.rb:203:在dispatch' actionpack (3.2.12) lib/action_controller/metal/rack_delegation.rb:14:in
dispatch’actionpack(3.2.12)lib / ac tion_controller / metal.rb:246:inblock in action' actionpack (3.2.12) lib/action_dispatch/routing/route_set.rb:73:in
(3.2.12)lib / action_dispatch / routing / route_set.rb: 73:在dispatch' actionpack (3.2.12) lib/action_dispatch/routing/route_set.rb:36:in
呼叫’旅程(1.0.4)lib /旅途/路由器.rb:68:block in call' journey (1.0.4) lib/journey/router.rb:56:in
中block in call' journey (1.0.4) lib/journey/router.rb:56:in
每个’旅程中(1.0.4)lib / journey / router.rb:56:在call' actionpack (3.2.12) lib/action_dispatch/routing/route_set.rb:601:in
调用’actionpack(3.2.12)lib / action_dispatch / middleware / best_standards_support.rb:17:在call' rack (1.4.5) lib/rack/etag.rb:23:in
呼叫’机架(1.4。 5)lib / rack / conditionalget.rb:35:在call' actionpack (3.2.12) lib/action_dispatch/middleware/head.rb:14:in
调用’actionpack(3.2.12)lib / action_dispatch / middleware / params_parser中。 rb:21:在call' actionpack (3.2.12) lib/action_dispatch/middleware/flash.rb:242:in
调用’rack(1.4.5)lib / rack / session / abstract / id.rb:210:在context' rack (1.4.5) lib/rack/session/abstract/id.rb:205:in
context' rack (1.4.5) lib/rack/session/abstract/id.rb:205:in
调用’actionpack(3.2.12)lib / action_dispatch / middleware / cookies.rb:341:在call' activerecord (3.2.12) lib/active_record/query_cache.rb:64:in
调用’activerecord(3.2.12)lib / active_record / connection_adapters / abstract / connection_pool.rb:479:在call' 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:在_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
调用’actionpack(3.2.12)lib / action_dispatch / middleware / remote_ip.rb:31:在call' actionpack (3.2.12) lib/action_dispatch/middleware/debug_exceptions.rb:16:in
call' actionpack (3.2.12) lib/action_dispatch/middleware/debug_exceptions.rb:16:in
调用’actionpack(3.2.12)lib / action_dispatch / middleware / show_exceptions.rb:56:在call' railties (3.2.12) lib/rails/rack/logger.rb:32:in
call_app中’railties(3.2.12)lib / rails / rack / logger.rb:16:在block 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:in
call’ rack(1.4.5)lib / rack / methodoverride.rb:21 :在call' rack (1.4.5) lib/rack/runtime.rb:17:in
呼叫’activesupport(3.2.12)lib / active_support / cache / strategy / local_cache.rb:72:在call' rack (1.4.5) lib/rack/lock.rb:15:in
调用’actionpack(3.2.12)lib / action_dispatch / middleware / static.rb:62:在call' railties (3.2.12) lib/rails/engine.rb:479:in
呼叫’railties(3.2.12)lib / rails / application.rb:223:在call' rack (1.4.5) lib/rack/content_length.rb:14:in
呼叫’railties(3.2.12)lib /rails/rack/log_tailer.rb:17:in’call(1.4.5)libcall' rack (1.4.5) lib/rack/handler/webrick.rb:59:in
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:inservice' /home/user/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/webrick/httpserver.rb:94:in
run’service' /home/user/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/webrick/httpserver.rb:94:in
.1 / webrick / server.rb:191:在`block in start_thread’中
您使用的是可卡因的错误版本。 运行bundle install
然后确保使用bundle exec rails s
来启动rails服务器。
较新版本的可卡因(〜> 0.4.0)中的run方法采用可选参数( def run(interpolations = {})
),旧版本(0.3.2)没有。
见上面的评论。