いつもお世話になります。
下記ページを参考に「もっと見る機能」の実装しようとしています。scaffoldでshopsを作りデータを1000件流し込んだ状態です。下記コードで最初の10件を表示した状態で、「more」のlinkをクリックしたときにajaxを用いて10件ずつ追加でデータを表示していきたいのですがうまく行きません。
moreのリンクをクリックしてもエラーは出ませんが特に何の変化も起きない状態です。
不勉強で申し訳ございませんが、解決策をご教示いただければと思います。
もっと見る機能の実装
http://t-taira.hatenablog.com/entry/2013/04/05/093714
ruby
1 2# view側 3 4# /views/shops/index.html.erb 5<div id="shops"> 6 <%= render 'shops' %> 7</div> 8<%= link_to_next_page @shops, 'more', remote: true, id: 'more_link' %> 9 10 11# /views/shops/_shops.html.erb 12<% @shops.each do |shop| %> 13 <div><%= shop.name %></div> 14<% end %> 15 16 17# /views/shops/index.js.erb 18$('#shops').append("<%= escape_javascript(render 'shops', object: @shops) %>") 19$("#more_link").replaceWith("<%= escape_javascript( 20 link_to_next_page(@shops, 'more', remote: true, id: 'more_link') 21) %>"); 22 23 24 25 26# controllers側 27 28# /controllers/shops_controller.rb 29require 'kaminari' 30class ShopsController < ApplicationController 31 before_action :set_shop, only: [:show, :edit, :update, :destroy] 32 def index 33 if params[:page].nil? 34 @shops = Shop.all.page(1).per(10) 35 else 36 @shops = Shop.page(params[:page]).per(10) 37 end 38 end 39end 40 41moreのリンクをクリックした際にコンソールに表示される内容 42Started GET "/shops?page=2" for XXX.XXX.XX.XX at 2017-12-07 15:57:04 +0900 43Cannot render console from XXX.XXX.XX.XX! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255 44Processing by ShopsController#index as JS 45 Parameters: {"page"=>"2"} 46 Rendering shops/index.js.erb 47 Shop Load (0.2ms) SELECT "shops".* FROM "shops" LIMIT ? OFFSET ? [["LIMIT", 10], ["OFFSET", 10]] 48 Rendered shops/_shops.html.erb (1.4ms) 49 (0.1ms) SELECT COUNT(*) FROM "shops" 50 Rendered shops/index.js.erb (5.7ms) 51Completed 200 OK in 16ms (Views: 10.8ms | ActiveRecord: 0.4ms) 52 53
あなたの回答
tips
プレビュー