TypeError例外:配列にポストを変換することはできません
-
26-09-2019 - |
質問
私はレール3とwill_paginateを使用しています。ページネーションは私の投稿コントローラで正常に動作しますが、私のタグコントローラに私は2番目のタグ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
どのような私をバッフルすると、このコードは、ポストのコントローラで動作することです。
DEFインデックス @posts = Post.paginate:ページ=>のparams [:ページ]:オーダー=> "DESC updated_atの" 終了
私のポストやタグのモデルが含まれます:
cattr_reader :per_page
@@per_page = 10
缶誰も私がここで間違ってやっているかを説明?
EDIT:(フルスタックトレース)
will_paginate(3.0.pre2)LIB / will_paginate / collection.rb:134:replace'
will_paginate (3.0.pre2) lib/will_paginate/collection.rb:134:in
replaceで」
will_paginate(3.0.pre2)のlib / will_paginate /ファインダー/ active_record.rb:91:wp_query'
will_paginate (3.0.pre2) lib/will_paginate/finders/base.rb:64:in
blockでのpaginateで」
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)の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
blockの」
activesupportの(3.0.0)のlib / active_support / notifications.rb:52:block in instrument'
activesupport (3.0.0) lib/active_support/notifications/instrumenter.rb:21:in
instrumentで」
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 /金属/ rescue.rb:17:process_action'
actionpack (3.0.0) lib/abstract_controller/base.rb:119:in
processで
actionpack(3.0.0)のlib / abstract_controller / rendering.rb:40:process'
actionpack (3.0.0) lib/action_controller/metal.rb:133:in
dispatchで」
actionpack(3.0.0)のlib / action_controller /金属/ rack_delegation.rb:14:アクションでdispatch'
actionpack (3.0.0) lib/action_controller/metal.rb:173:in
blockの」
actionpack(3.0.0)LIB / action_dispatch /ルーティング/ route_set.rb:62: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
blockの」
ラックマウント(0.6.12)のlib /ラック/マウント/ code_generation.rb:93:block in recognize'
rack-mount (0.6.12) lib/rack/mount/code_generation.rb:89:in
optimized_eachで」
ラックマウント(0.6.12)のlib /ラック/マウント/ code_generation.rb:92:recognize'
rack-mount (0.6.12) lib/rack/mount/route_set.rb:139:in
callで」
actionpack(3.0.0)LIB / action_dispatch /ルーティング/ route_set.rb:492:call'
actionpack (3.0.0) lib/action_dispatch/middleware/best_standards_support.rb:17:in
callで」
actionpack(3.0.0)のlib / action_dispatch /ミドルウェア/ head.rb:14:call'
rack (1.2.1) lib/rack/methodoverride.rb:24:in
callで」
actionpack(3.0.0)のlib / action_dispatch /ミドルウェア/ params_parser.rb:21:call'
actionpack (3.0.0) lib/action_dispatch/middleware/flash.rb:182:in
callで」
actionpack(3.0.0)のlib / action_dispatch /ミドルウェア/セッション/ abstract_store.rb:149:call'
actionpack (3.0.0) lib/action_dispatch/middleware/cookies.rb:287:in
callで」
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
cacheで」
ActiveRecordの(3.0.0)のlib / active_record / query_cache.rb:12:cache'
activerecord (3.0.0) lib/active_record/query_cache.rb:31:in
callで」
ActiveRecordの(3.0.0)のlib / active_record / connection_adapters /アブストラクト/ connection_pool.rb:355:call'
actionpack (3.0.0) lib/action_dispatch/middleware/callbacks.rb:46:in
blockのコールで」
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
callで」
ラック(1.2.1)のlib /ラック/ sendfile.rb:107:call'
actionpack (3.0.0) lib/action_dispatch/middleware/remote_ip.rb:48:in
callで」
actionpack(3.0.0)のlib / action_dispatch /ミドルウェア/ show_exceptions.rb:46:call'
railties (3.0.0) lib/rails/rack/logger.rb:13:in
callで」
ラック(1.2.1)のlib /ラック/ runtime.rb:17:call'
activesupport (3.0.0) lib/active_support/cache/strategy/local_cache.rb:72:in
callで」
ラック(1.2.1)のlib /ラック/ lock.rb:11:block in call'
<internal:prelude>:10:in
synchronizeで」
ラック(1.2.1)のlib /ラック/ lock.rb:11:call'
actionpack (3.0.0) lib/action_dispatch/middleware/static.rb:30:in
callで」
railties(3.0.0)のlib /レール/ application.rb:168:call'
railties (3.0.0) lib/rails/application.rb:77:in
method_missingで」
railties(3.0.0)のlib /レール/ラック/ log_tailer.rb:14:call'
rack (1.2.1) lib/rack/content_length.rb:13:in
callで」
(1.2.1)のlib /ラック/ハンドラ/ webrick.rbラック:52:service'
/usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:111:in
serviceに」
start_threadで/usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:70:in run'
/usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in
block '
解決
あなたは試したことがあります:
@posts = Post.tagged_with(@tag).paginate :page => params[:page], :order => "updated_at DESC"