2

我使用的Rails 3和will_paginate。分页在我的Posts控制器中工作正常,但在我的标签控制器中,第二个标签ID出现错误。这里的错误:类型错误:不能转换成后阵列

TypeError in TagsController#show 

can't convert Post into Array 

... 

app/controllers/tags_controller.rb:8:in `show' 

tags_controller.rb#显示:

def show 
    @tag = ActsAsTaggableOn::Tag.find(params[:id]) 
    @posts = Post.paginate(Post.tagged_with(@tag), :page => params[:page], :order => "updated_at DESC") # line 8 
    respond_with(@posts) 
end 

什么令我感到困惑的是,这个代码工作在岗位控制器:

高清指数 @posts = Post.paginate :page => params [:page],:order =>“updated_at DESC” end

我的帖子和标签模型包括:

cattr_reader :per_page 
@@per_page = 10 

谁能解释我在做什么错在这里?

编辑:(全堆栈跟踪)

will_paginate(3.0.pre2)LIB/will_paginate/collection.rb:134:replace' will_paginate (3.0.pre2) lib/will_paginate/collection.rb:134:in取代” will_paginate(3.0.pre2)LIB/will_paginate /发现者/ active_record。 RB:91:在PAGINATE wp_query' will_paginate (3.0.pre2) lib/will_paginate/finders/base.rb:64:in块 ' will_paginate(3.0.pre2)LIB/will_paginate/collection.rb:87:在create' will_paginate (3.0.pre2) lib/will_paginate/finders/base.rb:62:in PAGINATE' 应用程序/控制器/ tags_controller.rb:8:show' actionpack (3.0.0) lib/action_controller/metal/implicit_render.rb:4:in send_action” ActionPack的(3.0 0.0)LIB/abstract_controller/base.rb:150:在process_action' actionpack (3.0.0) lib/action_controller/metal/rendering.rb:11:in process_action” ActionPack的(3.0.0)LIB/abstract_controller/callbacks.rb:18 :在block in process_action' activesupport (3.0.0) lib/active_support/callbacks.rb:435:in _run__833165888__process_action__116844887__callbacks' 的ActiveSupport(3.0.0)LIB/active_support/callbacks.rb:409:在_run_process_action_callbacks' activesupport (3.0.0) lib/active_support/callbacks.rb:93:in run_callbacks' ActionPack的(3.0.0)LIB/abstract_controller/callbacks.rb:17:在process_action” process_action' actionpack (3.0.0) lib/action_controller/metal/instrumentation.rb:30:in块(3.0.0)lib/active_support/notifications.rb:52:block in instrument' activesupport (3.0.0) lib/active_support/notifications/instrumenter.rb:21:in仪器' activesupport(3.0.0)lib/active_support/notifications.rb:52:在instrument' actionpack (3.0.0) lib/action_controller/metal/instrumentation.rb:29:in process_action' actionpack(3.0.0)lib/action_controller/metal/rescue.rb:17:在process_action' actionpack (3.0.0) lib/abstract_controller/base.rb:119:in进程' actionpack(3.0.0)lib/abstract_controller/rendering.rb:40:in process' actionpack (3.0.0) lib/action_controller/metal.rb:133:in dispatch' actionpack(3.0.0)lib/action_con troller/metal/rack_delegation.rb:14:dispatch' actionpack (3.0.0) lib/action_controller/metal.rb:173:in block in action' actionpack(3.0.0)lib/action_dispatch/routing/route_set.rb:62:in call' actionpack (3.0.0) lib/action_dispatch/routing/route_set.rb:62:in dispatch' actionpack(3.0.0)lib/action_dispatch /路由/ route_set.rb:27:在call' rack-mount (0.6.12) lib/rack/mount/route_set.rb:148:in块中调用' rack-mount(0.6.12)lib/rack/mount/code_generation.rb:93:in block in recognize' rack-mount (0.6.12) lib/rack/mount/code_generation.rb:89:in optimized_each' rack-mount(0.6.12)lib/rack/mount/code_generation.rb:92:在recognize' rack-mount (0.6.12) lib/rack/mount/route_set.rb:139:in调用' actionpack(3.0.0)lib/action_dispatch/routing/route_set.rb:492:in call' actionpack (3.0.0) lib/action_dispatch/middleware/best_standards_support.rb:17:in call' actionpack(3.0.0)lib/action_dispatch/middleware/head.rb:14:在call' rack (1.2.1) lib/rack/methodoverride.rb:24:in呼叫” ActionPack的(3.0.0)LIB/action_dispatch /中间件/ params_parser.r b:21:call' actionpack (3.0.0) lib/action_dispatch/middleware/flash.rb:182:in调用' actionpack(3.0.0)lib/action_dispatch/middleware/session/abstract_store.rb:149:在call' actionpack (3.0.0) lib/action_dispatch/middleware/cookies.rb:287:in调用' activerecord(3.0.0)lib/active_record/query_cache.rb:32:在block in call' activerecord (3.0.0) lib/active_record/connection_adapters/abstract/query_cache.rb:28:in缓存 ' 了activerecord(3.0.0)LIB/active_record/query_cache.rb:12:cache' activerecord (3.0.0) lib/active_record/query_cache.rb:31:in呼叫' ActiveRecord的(3。0.0)lib/active_record/connection_adapters/abstract/connection_pool.rb:355:在call' actionpack (3.0.0) lib/action_dispatch/middleware/callbacks.rb:46:in块中调用' activesupport(3.0.0)lib/active_support/callbacks.rb:415:在_run_call_callbacks' actionpack (3.0.0) lib/action_dispatch/middleware/callbacks.rb:44:in调用' rack(1.2.1) lib/rack/sendfile.rb:107:在call' actionpack (3.0.0) lib/action_dispatch/middleware/remote_ip.rb:48:in调用' actionpack(3.0.0)lib/action_dispatch/middleware/show_exceptions.rb:46:在call' railties (3.0.0) lib/rails/rack/logger.rb:13:in调用' rack(1.2.1)lib/rack/runtime。 rb:17:在call' activesupport (3.0.0) lib/active_support/cache/strategy/local_cache.rb:72:in中调用' rack(1.2.1)lib/rack/lock.rb:11:block in call' <internal:prelude>:10:in同步' rack(1.2.1)lib/rack/lock.rb:11:在call' actionpack (3.0.0) lib/action_dispatch/middleware/static.rb:30:in中调用' railties(3.0.0)lib/rails/application.rb:168:在call' railties (3.0.0) lib/rails/application.rb:77:in method_missing' railties(3.0.0)lib/r ails/rack/log_tailer.rb:14:在call' rack (1.2.1) lib/rack/content_length.rb:13:in中调用' rack(1.2.1)lib/rack/handler/webrick.rb:52:in service' /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:111:in service' /usr/local/lib/ruby/1.9.1 /webrick/httpserver.rb:70:in在start_thread” run' /usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in

+0

完整的堆栈跟踪? – 2010-09-03 01:32:47

+0

全栈跟踪贴 – BasicObject 2010-09-03 02:19:38

回答

1

你试过:

@posts = Post.tagged_with(@tag).paginate :page => params[:page], :order => "updated_at DESC" 
+0

我以为我有!谢谢TRON! – BasicObject 2010-09-03 10:49:30

相关问题