###実現したいこと
現在、kaminariを利用し、ページネーションをしています。
あるページではできたのですが、別のページでは反応がありませんのでこちらを解決したいです。
index = うまくいっている
index2 = うまく行かない(もっと見るボタンをしても反応がない)
コード
index1
1<div id="items"> 2 <%= render 'items' %> 3</div> 4<span><%= link_to_next_page @posts, 'もっと見る',class: 'items_btn', remote: true, id: 'more_link' %></span> 5
index2
1<div id="items2"> 2 <%= render 'items2' %> 3</div> 4<span><%= link_to_next_page @posts, 'もっと見る',class: 'items_btn', remote: true, id: 'more_link' %></span>
Controller
1def index 2 @posts = Post.includes(:user).order(created_at: :desc).page(params[:page]).per(1) 3 respond_to do |format| 4 format.html 5 format.js { @post } 6 end 7end 8def index2 9 @posts = Post.includes(:user).all.order(created_at: :desc).page(params[:page]).per(1) 10 respond_to do |format| 11 format.html 12 format.js { @post } 13 end 14end
index.js.erb
js
1$('#items').append("<%= escape_javascript(render 'items', object: @posts) %>") 2$("#more_link").replaceWith("<%= escape_javascript(link_to_next_page(@posts, 'もっと見る',class: 'items_btn', remote: true, id: 'more_link')) %>"); 3$('#items2').append("<%= escape_javascript(render 'items2', object: @posts) %>") 4$("#more_link").replaceWith("<%= escape_javascript(link_to_next_page(@posts, 'もっと見る',class: 'items_btn', remote: true, id: 'more_link')) %>");
ログ(もっと見るボタンを押した後)
index→うまくいってます。
index2→反応なしです。
index
1Started GET "/posts/index?page=2" for 127.0.0.1 at 2019-12-12 18:08:29 +0900 2Processing by PostsController#index as JS 3 Parameters: {"page"=>"2"} 4 User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 2], ["LIMIT", 1]] 5 ↳ app/controllers/application_controller.rb:6 6 Rendering posts/index.js.erb 7 Post Load (0.3ms) SELECT "posts".* FROM "posts" ORDER BY "posts"."created_at" DESC LIMIT ? OFFSET ? [["LIMIT", 1], ["OFFSET", 1]] 8 ↳ app/views/posts/_items.html.erb:1 9 User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? [["id", 1]] 10 ↳ app/views/posts/_items.html.erb:1 11 User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] 12 ↳ app/models/post.rb:15 13 CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] 14 ↳ app/models/post.rb:15 15 Rendered posts/_items.html.erb (4.8ms) 16 (0.1ms) SELECT COUNT(*) FROM "posts" 17 ↳ app/views/posts/index.js.erb:2 18 CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] 19 ↳ app/models/post.rb:15 20 User Exists (0.3ms) SELECT 1 AS one FROM "users" INNER JOIN "friendships" ON "users"."id" = "friendships"."followed_id" WHERE "friendships"."follower_id" = ? AND "users"."id" = ? LIMIT ? [["follower_id", 2], ["id", 1], ["LIMIT", 1]] 21 ↳ app/models/user.rb:32 22 CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] 23 ↳ app/models/post.rb:15 24 CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] 25 ↳ app/models/post.rb:15 26 Like Load (0.3ms) SELECT "likes".* FROM "likes" WHERE "likes"."user_id" = ? AND "likes"."post_id" = ? LIMIT ? [["user_id", 2], ["post_id", 4], ["LIMIT", 1]] 27 ↳ app/views/posts/_storyitems.html.erb:19 28 (0.2ms) SELECT COUNT(*) FROM "likes" WHERE "likes"."post_id" = ? [["post_id", 4]] 29 ↳ app/views/posts/_storyitems.html.erb:28 30 Favorite Load (0.2ms) SELECT "favorites".* FROM "favorites" WHERE "favorites"."user_id" = ? AND "favorites"."post_id" = ? LIMIT ? [["user_id", 2], ["post_id", 4], ["LIMIT", 1]] 31 ↳ app/views/posts/_storyitems.html.erb:30 32 (0.1ms) SELECT COUNT(*) FROM "favorites" WHERE "favorites"."post_id" = ? [["post_id", 4]] 33 ↳ app/views/posts/_storyitems.html.erb:39 34 Comment Load (0.5ms) SELECT "comments".* FROM "comments" WHERE "comments"."user_id" = ? AND "comments"."post_id" = ? LIMIT ? [["user_id", 2], ["post_id", 4], ["LIMIT", 1]] 35 ↳ app/views/posts/_storyitems.html.erb:41 36 (0.3ms) SELECT COUNT(*) FROM "comments" WHERE "comments"."post_id" = ? [["post_id", 4]] 37 ↳ app/views/posts/_storyitems.html.erb:46 38 CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] 39 ↳ app/models/post.rb:15 40 CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] 41 ↳ app/models/post.rb:15 42 CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] 43 ↳ app/models/post.rb:15 44 CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] 45 ↳ app/models/post.rb:15 46 CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] 47 ↳ app/models/post.rb:15 48 CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] 49 ↳ app/models/post.rb:15 50 Rendered posts/_storyitems.html.erb (23.4ms) 51 Rendered posts/index.js.erb (35.3ms) 52Completed 200 OK in 50ms (Views: 42.7ms | ActiveRecord: 3.0ms) 53
index2
1Started GET "/posts/index2?page=2" for 127.0.0.1 at 2019-12-12 17:47:44 +0900 2Processing by PostsController#index2 as JS 3 Parameters: {"page"=>"2"} 4 User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 2], ["LIMIT", 1]] 5 ↳ app/controllers/application_controller.rb:6 6 Post Load (0.5ms) SELECT "posts".* FROM "posts" WHERE "posts"."id" IS NULL LIMIT ? [["LIMIT", 1]] 7 ↳ app/controllers/posts_controller.rb:31 8 (0.3ms) SELECT COUNT(*) FROM "posts" WHERE "posts"."user_id" = ? [["user_id", 2]] 9 ↳ app/controllers/posts_controller.rb:32 10 (0.2ms) SELECT COUNT(*) FROM "likes" WHERE "likes"."post_id" IS NULL 11 ↳ app/controllers/posts_controller.rb:33 12 (0.3ms) SELECT COUNT(*) FROM "favorites" WHERE "favorites"."post_id" IS NULL 13 ↳ app/controllers/posts_controller.rb:34 14 (0.3ms) SELECT COUNT(*) FROM "comments" WHERE "comments"."post_id" IS NULL 15 ↳ app/controllers/posts_controller.rb:35 16 Rendering posts/story.html.erb 17 (0.4ms) SELECT COUNT(*) FROM "users" INNER JOIN "friendships" ON "users"."id" = "friendships"."followed_id" WHERE "friendships"."follower_id" = ? [["follower_id", 2]] 18 ↳ app/views/posts/index2.html.erb:3 19 Post Load (0.4ms) SELECT "posts".* FROM "posts" ORDER BY "posts"."created_at" DESC LIMIT ? OFFSET ? [["LIMIT", 1], ["OFFSET", 1]] 20 ↳ app/views/posts/_storyitems.html.erb:1 21 User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? [["id", 1]] 22 ↳ app/views/posts/_storyitems.html.erb:1 23 User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] 24 ↳ app/models/post.rb:15 25 User Exists (0.2ms) SELECT 1 AS one FROM "users" INNER JOIN "friendships" ON "users"."id" = "friendships"."followed_id" WHERE "friendships"."follower_id" = ? AND "users"."id" = ? LIMIT ? [["follower_id", 2], ["id", 1], ["LIMIT", 1]] 26 ↳ app/models/user.rb:32 27 CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] 28 ↳ app/models/post.rb:15 29 CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] 30 ↳ app/models/post.rb:15 31 Rendered posts/_storyitems.html.erb (8.2ms) 32 (0.2ms) SELECT COUNT(*) FROM "posts" 33 ↳ app/views/posts/story.html.erb:14 34 Rendered posts/story.html.erb (19.5ms) 35Completed 200 OK in 91ms (Views: 29.5ms | ActiveRecord: 3.5ms)
###試したこと
あえて、index1のrenderをitems2(index2のもの)にした場合、renderもページネーションもうまくいきます。ですが現状、原因を把握できずにいます。
index1
1<div id="items2"> 2 <%= render 'items2' %> 3</div> 4<span><%= link_to_next_page @posts, 'もっと見る',class: 'items_btn', remote: true, id: 'more_link' %></span>
ご指摘宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。